frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Blatant AI slop just won a 25k USD DeepMind Kaggle Grand Prize

https://www.kaggle.com/competitions/kaggle-measuring-agi/discussion/724918#3498423
111•twerkmeister•46m ago•26 comments

EEG shows brain can simultaneous encode two speech streams

https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.3003876
144•giuliomagnifico•6h ago•81 comments

Kimi K3: Open Frontier Intelligence

https://www.kimi.com/blog/kimi-k3
1730•vincent_s•21h ago•1014 comments

Pebble Mega Update – July 2026

https://repebble.com/blog/pebble-mega-update-july-2026
147•crazysaem•8h ago•69 comments

How Has Roman Concrete Lasted for Millennia? 1,900-Year-Old Latrine Offers Clues

https://www.smithsonianmag.com/smart-news/how-has-roman-concrete-lasted-for-millennia-a-1900-year...
156•divbzero•8h ago•121 comments

Microsoft Comic Chat is now open source

https://opensource.microsoft.com/blog/2026/07/16/microsoft-comic-chat-is-now-open-source/
707•jervant•20h ago•158 comments

Decoy Font

https://www.mixfont.com/experiments/decoy-font
588•ray__•19h ago•138 comments

An Engineer's Guide to USB Typе-С (2024)

https://www.ti.com/lit/eb/slyy228/slyy228.pdf?ts=1759892558029
199•gregsadetsky•6d ago•21 comments

Solod: Go can be a better C

https://solod.dev
154•koeng•3d ago•84 comments

LM Studio Bionic: the AI agent for open models

https://lmstudio.ai/blog/introducing-lm-studio-bionic
270•minimaxir•15h ago•100 comments

$100 AI Music Video: Claude Fable 5 vs. GPT-5.6 Sol

https://www.tryai.dev/blog/ai-music-video-arena-claude-vs-gpt-5.6
302•hershyb_•16h ago•400 comments

Starlink from 1984

https://nemanjatrifunovic.substack.com/p/starlink-from-1984
49•ingve•5d ago•19 comments

Ask HN: Any AWS billing issues known? Amazon forecast of 3 billion dollars

22•mstolpm•1h ago•12 comments

The Little Book of Reinforcement Learning

https://github.com/alxndrTL/little-book-rl/
158•mustaphah•13h ago•18 comments

NotebookLM is now Gemini Notebook

https://blog.google/innovation-and-ai/products/gemini-notebook/notebooklm-gemini-notebook/
323•xnx•20h ago•161 comments

I Owe My Life to the Commodore 64

https://www.goto10retro.com/p/i-owe-my-life-to-the-commodore-64
35•ingve•2h ago•22 comments

Camera Chase Vehicle

https://transistor-man.com/gimbal_camera_rover.html
35•geerlingguy•1w ago•3 comments

Turn your singing voice into printable notes (in the browser)

https://om-intelligence.ch/projects/vocal-notation/vocal-notation.html
39•busssard•3d ago•18 comments

Immersive Linear Algebra Book with Interactive Figures (2015)

https://immersivemath.com/ila/
244•srean•20h ago•27 comments

Detecting LLM-Generated Texts with “Classical” Machine Learning

https://blog.lyc8503.net/en/post/llm-classifier/
210•uneven9434•19h ago•153 comments

In Praise of Exhaustive Destructuring

https://antoine.vandecreme.net/blog/exhaustive-destructuring-praise/
28•avandecreme•5d ago•6 comments

Old Icons

https://leancrew.com/all-this/2026/07/old-icons/
73•zdw•5d ago•20 comments

Helium escaping from atmosphere of nearby rocky exoplanet in a habitable zone

https://www.science.org/doi/10.1126/science.aea9708
118•anyonecancode•15h ago•39 comments

Mathematics of Data Science

https://arxiv.org/abs/2607.11938
176•Anon84•15h ago•11 comments

CD sales growth outpaced vinyl in the first half of 2026

https://consequence.net/2026/07/the-cd-revival-is-getting-hard-to-ignore/
128•speckx•18h ago•138 comments

'Likweli': A new monkey species discovered in the Congo Basin

https://news.yale.edu/2026/07/15/meet-likweli-new-monkey-species-discovered-congo-basin
90•gmays•14h ago•21 comments

How to Train a Gen AI Kick Drum Model on Your Old Linux Desktop with 6GB VRAM

https://www.zhinit.dev/blog/training-a-kick-drum-diffusion-model
143•zhinit•21h ago•70 comments

The LLM Critics Are Right. I Use LLMs Anyway

https://www.theocharis.dev/blog/llm-critics-are-right-i-use-llms-anyway/
248•JeremyTheo•1d ago•258 comments

The human-in-the-loop is tired

https://pydantic.dev/articles/the-human-in-the-loop-is-tired
254•haritha1313•11h ago•142 comments

Show HN: Clx – Compile Lua to Native Executables Through C++20

https://github.com/samyeyo/clx
124•_samt_•5d ago•26 comments
Open in hackernews

SQLite Is All You Need

https://www.dbpro.app/blog/sqlite-is-all-you-need
40•upmostly•3d ago

Comments

upmostly•2d ago
Author here. This started because I read Evan Hahn's STRICT tables post [1] last week and got curious how far "just use SQLite" actually holds up under real load, not toy benchmarks.

So I built a small social app (Chirp: 50k users, 1M posts, ~2.5M follows) in one SQLite file, put it behind a plain Node server, and load tested it properly: real HTTP, real JSON serialization, autocannon hammering it over sockets. The worst query in the app (home timeline, which joins follows against posts, counts likes, sorts by time) still did 3,654 req/s on an M1 laptop, which works out to 315M requests/day.

The part I didn't expect going in: WAL vs the old rollback journal isn't a minor tuning knob, it's the whole story. Same query, same data, one pragma changed, and p99 read latency goes from 4.4ms to 133ms once you add a writer. That's the "SQLite locks and blocks everyone" reputation, and it's from a database mode most people don't even use anymore.

I also tried to be honest about where it falls over: reads stop scaling once anything writes (page cache invalidation, not lock contention), there's one write lock for the whole DB, and there's no failover if the box dies. Those are real constraints, not disclaimers.

Also benchmarked Node+better-sqlite3 vs Bun+bun:sqlite since I had the harness built anyway. Bun wins on cheap queries, Node wins on the expensive ones. Wasn't expecting a split.

Happy to answer questions on methodology, the STRICT table stuff, or why we ended up building this the way we did.

[1] https://evanhahn.com/prefer-strict-tables-in-sqlite/

inigyou•46m ago
This comment was shadowbanned because an LLM wrote it, and HN uses an LLM detector.
chasd00•35m ago
> WAL vs the old rollback journal isn't a minor tuning knob, it's the whole story.

That gave it away for me. I still appreciate the information contained in the reply but it was obvious. FWIW I don’t mind LLM content as long as I’m learning something.

rmunn•40m ago
Have you read https://www.sqlite.org/howtocorrupt.html? Section 1.2 addresses the exact scenario you wrote about in "Backups are a file copy". You got lucky with your testing, and didn't manage to copy the database in the middle of writing a transaction to the WAL file. Backing up an SQLite database with `cp` can produce corrupt backups if you lose the race condition, an unlikely but possible scenario,

Your later advice about "VACUUM INTO (backupfile)" is good, though: the SQLite manual guarantees that that's safe. But it's not safe to back up with `cp` if there are transactions currently writing to the DB: that has a chance of copying files in an inconsistent state, resulting in a corrupt DB and data loss you don't realize has happened until you restore the backup and find out there are some rows missing, or some rows have an invalid mix of old and new data.

audunw•2d ago
The tests and the numbers are interesting. The LLM writing style? Insufferable.

It really wouldn’t have taken much effort to cut out the worst of the AI fluff, and maybe add some human touches

Terretta•1d ago
Sit with that for a second.*

* is in the article

olmo23•47m ago
The honest mixed-workload number The honest version of scale Which means the honest answer to "should I use Bun for this" is: it depends

It's Claude.

simonw•33m ago
"No version upgrades, no connection limits, no pooler, no failover drill, no separate thing to monitor, no separate thing to pay for"

Inspired me to finally build (well, vibe code) a cliché detector https://tools.simonwillison.net/llm-cliche-highlighter

afonsosoares•2d ago
I could not agree more KISS is always the way to go. For those people that are interested you can have a sqld instance on a different VM with S3 backup. On my case I use k8s and the backend pod use rust libsqld crate with local first sql database file with remote sync to sqld. When pod start if db file is not available libsqld will try recover it from slqd otherwise it will just load local db file and sync.
faangguyindia•1h ago
lobster.rs also started using sqlite, i've been using exclusively using sqlite for most of my projects.

apps appear much faster because db is on the same server

fsuts•54m ago
How are lobster.rs handling writes? Are they queuing them synchronously?
Cthulhu_•45m ago
https://sqlite.org/wal.html presumably.
fsuts•39m ago
But like any message board it will get peak time hits

So lunchtime in America there will be multiple people posting comments at the same time

And Sqllite only allows one writer, so what happens if multiple people send their comments at once

So are they using ultra fast storage on the host or queues or other

scrlk•25m ago
SQLite with WAL on a standard NVMe drive will easily do thousand of writes per second.
0xblinq•1h ago
And what do you do when you need more than one server, for redundancy or scaling to more servers?
callamdelaney•54m ago
You move to postgres at that point. Though if you can't scale to $1marr with sqllite then ehhh
inigyou•47m ago
If you think this might happen then you should start with postgres - it'll save you a migration, and doesn't cost much.
Cthulhu_•42m ago
Someone pointed to moving to postgres or comparable, but another option is e.g. rqlite (https://github.com/rqlite/rqlite).
petcat•1h ago
> the Postgres container you spun up out of habit was never needed

These posts need to stop comparing their contrived use-cases for SQLite to Postgres. Sure, SQLite is all you need if it really is all you need. But Postgres does so much more than just act as a data dump with an SQL engine on top.

Dr. Hipp himself even said that SQLite does not, and will never, compete with the likes of Postgres. It competes with fopen.

teaearlgraycold•1h ago
For example you cannot have concurrent access. As soon as you need a worker process and a web process SQLite is out. Or if you are trying to use it as a vector db all of those vector searches will block a node event loop.
adzm•56m ago
WAL mode allows concurrency with reads and writes fwiw
callamdelaney•55m ago
Yeah it blocks for the 0.001ms it takes for 99.99% of queries to come back. Or you can enable WAL and allow readers to read at the same time as somebody is writing.
smarx007•55m ago
https://lobste.rs/s/ko1ji1/lobste_rs_is_now_running_on_sqlit...
chistev
chistev•53m ago
The SQLite documentation says that

"SQLite works great as the database engine for most low to medium traffic websites (which is to say, most websites). The amount of web traffic that SQLite can handle depends on how heavily the website uses its database. Generally speaking, any site that gets fewer than 100K hits/day should work fine with SQLite. The 100K hits/day figure is a conservative estimate, not a hard upper bound. SQLite has been demonstrated to work with 10 times that amount of traffic.

The SQLite website (https://www.sqlite.org/) uses SQLite itself, of course, and as of this writing (2015) it handles about 400K to 500K HTTP requests per day, about 15-20% of which are dynamic pages touching the database. Dynamic content uses about 200 SQL statements per webpage. This setup runs on a single VM that shares a physical server with 23 others and yet still keeps the load average below 0.1 most of the time."

Cthulhu_•45m ago
I remember this section for the 200 queries per page thing, which is a huge difference between sqlite and most databases. Most databases run in a separate process and use a network boundary to separate it from the server processes (socket connection or even http), which alone exacerbates the n+1 problem, and / or puts pressure on the amount of queries one should trigger per page view. SQLite doesn't care because it runs as part of the server process.
mikeocool•50m ago
I love SQLite, but my clients expect minimal data loss and downtime when one of my servers goes down.

How are people solving that issue with SQLite? Everytime I’ve investigated it, it seems like the state of the art is not very battle tested WAL shipping solutions.

If I’m setting something like that up, suddenly running Postgres with its battle tested replication starts to look not so much more complicated in comparison.

bendangelo•46m ago
litestream is good for this.
ndr•31m ago
I use it in several projects. You're still open to a few seconds of possible downtime (depending how often you flush the WAL to your remote location, and how bursty your writes are), and you need to have all of your db on disk on the process doing the reads, but it's been great.
rmunn•44m ago
There's some bad advice in the article:

"Backups are a file copy. [...] you can back up a live SQLite database, under write load, without stopping anything."

This is straight out of section 1.2 of https://www.sqlite.org/howtocorrupt.html. Yes, you can do that, and sometimes you will end up with a valid, non-corrupt backup. But it's timing-dependent: lose the race and you'll end up backing up a partially written transaction, making the backup corrupt. They didn't end up losing that race when they wrote the article, but that doesn't mean it is safe 100% of the time.

The section later on about running "VACUUM INTO backup-$(date +%F).db" is 100% safe, though: SQLite guarantees that you'll get consistent state if you do that.

luke5441•26m ago
At some point I thought I would be clever and just backup the file while no transaction is active (or manual WAL checkpointing and no WAL checkpointing active).

Ran into 2.2. https://www.sqlite.org/howtocorrupt.html -- the backup was close()ing the database file descriptor and canceling the SQlite locks.

polterguy-hyper•41m ago
SQLite is an incredible database engine. I've built my entire AI harness entirely on top of it.
arpinum•41m ago
I use a in-memory database per unit test with both rocksdb and sqlite, it is a game-changer to get better quality tests.

Overall premise is wrong though. Moving the database out of process will change performance characteristics and data architecture too much and will cause massive headaches at exactly the time when you are trying to scale with success. You should have out of process performance tests early to catch these issues, even if you do deploy a single node.

If success can be satisfied with a single node and you are satisfied with availability and recovery that gives you then great, but it isn't all I need.

PUSH_AX•40m ago
We serve multi million MAU on sqlite orchestrated through durable objects. It's not the most complex thing in the world but it goes further than CRUD. It costs us such a small amount of money for what it does. Our PG cluster was orders of magnitude more expensive.
mattbee•38m ago
Yuck, the LLM writing style is obvious, and strongly suggests you didn't do the work you claim. Why should we read this?
•
42m ago
That site is hard on my eyes
Cthulhu_•47m ago
Article mentions WAL and how this sentiment is about 16 years out of date. But also, you can duplicate databases for out-of-order processes.

But also also, if you have higher concurrency requirements - e.g. multiple servers, one database - or a more write-heavy use case, sqlite is no longer the right choice.

chii•52m ago
> SQLite is all you need if it really is all you need.

most use cases are really capable of being satisfied by sqlite, but the "architect" imagines they need more (or is preparing for the potential).

inigyou•48m ago
If you could conceivably use multiple processes at once to access the database, and not just as an edge case, you need something more than sqlite.

Sqlite does support multi-process access correctly, but the performance is abysmal as it locks the entire file for any write transaction. Client/server databases have much smarter concurrency.

masklinn•37m ago
It’s perfectly fine if your write throughput is low, especially in wal mode. Multiprocess does not actually change much if anything, even in multithreaded mode you want every thread to have its own connection and to have a good handle on who is writing when.
petcat•48m ago
> the "architect" imagines they need more (or is preparing for the potential)

I guess I am one of those "architects" that imagines they need an actual date/time storage class instead of some stringly-typed text column that I hope will contain a parsable ISO8601 datetime string when I try to read it back.

Hipp said that it will never be added because it will bloat the size of the embedded object. Because that is what SQLite was designed for: single-user embedded databases. Like the address book on your phone.

masklinn•40m ago
In fairness, sqlite is perfectly happy with Julian dates or Unix timestamps (that’s the affinity of a column typed “datetime” in non-strict mode) and timestamp(tz) are nothing to write home about except in complaint.
petcat•38m ago
so now we've traded a text column for an int column that still can't validate that the number is actually externally consistent with the real world.
echoangle•35m ago
Is there an invalid unix timestamp? What is there to validate?
petcat•28m ago
Well for one we should probably validate that the number is smaller than the total life of the physical universe.

SQLite will gladly store a u64::MAX as a "unix timestamp" despite it being about 300x larger than the number of seconds that the universe and everything in it has existed.

Try reading that back in any application date/time code and your app probably crashes immediately.

Xenoamorphous•34m ago
> I guess I am one of those "architects" that imagines they need an actual date/time storage class instead of some stringly-typed text column that I hope will contain a parsable ISO8601 datetime string when I try to read it back.

To be honest if you're using JSON at any point in your stack you have the same issue.

f3b5•30m ago
I was such a big sqlite fan that I used it for my data-intensive startup. Once I actually started scaling it up I ran into crippling file system race conditions. This was because we were hosted on a distributed file system in the cloud which I learned is very very bad for sqlite.

So I had to migrate the production db under live load from sqlite to mysql which was a quite ...intense week. I still like sqlite but I'd be wary of using it again for a usecase like mine.

pdimitar•25m ago
SQLite creators explicitly warn against using SQLite on a networked file system btw.
TZubiri•44m ago
and for that matter, fopen is all you need, you do not need sqlite
haspok•23m ago
> It competes with fopen.

No, it actually competes with Excel.

At least in the finance world, there are still a million small processes driven by an Excel spreadsheet put together in an afternoon by an intern 20 years ago. If it is a really business critical process, then the input is usually a csv file, read by an Excel macro.

Because Excel is user friendly, and "is good enough". Mostly...