nowfound

Dev tools · December 15, 2023

My Go SQLite driver did poorly on a benchmark, so I fixed it

https://github.com/ncruces/go-sqlite3 was doing poorly on this benchmark that was posted yesterday to HackerNews [1]. With the help of some pprof, I was able to trace it to a serious performance regression introduced two weeks ago, and come up with the fix (happy to field questions, if you're interested in the nitty gritty). It's not the fastest driver around, but it's no longer the slowest: comfortably middle of the pack. It's based on a WASM build of SQLite, and thanks to https://wazero.io doesn't need CGO. [1]:…

My Go SQLite driver did poorly on a benchmark, so I fixed it launched on December 15, 2023 with 234 votes, #171 of 3,780 launches that month and more than 95% of that year's launches. The site was not reachable when checked in September 2026.

Visit github.com ↗Alternativestop 5% of December 2023

In plain words

Go-sqlite3 is a SQLite driver for Go built on WebAssembly that eliminates the need for CGO. After underperforming in recent benchmarks, the developer identified and resolved a performance regression, bringing it to middle-of-the-pack speed. It's designed for Go developers who need SQLite database access without C compiler dependencies.

written from the facts on this page · September 2026

From the sources

In the maker’s words, at launch

https://github.com/ncruces/go-sqlite3 was doing poorly on this benchmark that was posted yesterday to HackerNews [1]. With the help of some pprof, I was able to trace it to a serious performance regression introduced two weeks ago, and come up with the fix (happy to field questions, if you're…

Does a similar job

all alternatives →
  • (bits) of a Libc, Optimized for Wasm2025 · github.com · ▲78

    I make a no-CGO Go SQLite driver, by compiling the amalgamation to Wasm, then loading the result with wazero (a CGO-free Wasm runtime). To compile SQLite, I use wasi-sdk, which uses wasi-libc, which is based on musl. It's been said that musl is slow(er than glibc), which is true, to a point. musl uses SWAR on a size_t to implement various functions in string.h. This is fine, except size_t is just 32-bit on Wasm. I found that implementing a few of those functions with Wasm SIMD128 can make them go around 4x faster. Other functions don't even use SWAR; redoing those can make them 16x faster.…

  • Roast my SQLite encryption at-rest2024 · github.com · ▲99

    SQLite encryption at-rest is a hot requested feature of both the “default” CGo driver [1] and the transpiled alternative driver [2]. So, this is a feature I wanted to bring to my own Wasm based Go driver/bindings [3]. Open-source SQLite encryption extensions have had a troubled last few years. For whatever reason, in 2020 the (undocumented) feature that made it easy to offer page-level encryption was removed [4]. Some solutions are stuck with SQLite 3.31.1, but Ulrich Telle stepped up with a VFS approach [5]. Still, their solution seemed harder than something I'd want to maintain, as it…

  • A Wasm to Go TranslatorFeb 2026 · github.com · ▲7

    I've spent the past couple of weeks building a Wasm-to-Go translator. It supports a subset of Wasm useful enough to translate SQLite into 600k LoC (~20 MiB) of Go code. It already passes all of my Go SQLite driver's tests across the 20 platforms I support. Performance compared to https://wazero.io/ is a bit of a mixed bag: code that frequently crosses the Go-Wasm boundary improves, but code that spends most of its time in "Wasm land" doesn't. There's probably room for improvement (I'd love to hear your ideas), but this is also a testament to how good the wazero AOT compiler…

  • A new stdlib for Golang focusing on platform native support2023 · github.com · ▲154

    No gc, No goroutines, Produces small binaries while using the unmodified official go toolchain, and comes with complete Web SDK (generated from w3c/webref). We are building `pcz` to provide a reimagination of Go the language, in an effort to make it suitable for all kinds of programming tasks, and currently you can use it to build efficient web applications in Go using the generated Web SDK (as shown with the live web demo[1]). The journey is just starting, any suggestions? or any critics? [1]: https://primecitizens.github.io/livedemos/10-plat-web/

  • Godb is a simple Go ORM for PostgreSQL, MySQL, SQLite and SQL Server2016 · github.com · ▲205

    A Go SQL query builder and struct mapper. Contribute to samonzeweb/godb development by creating an account on GitHub.

  • Gogosseract, a Go Lib for CGo-Free Tesseract OCR via Wazero2023 · github.com · ▲120

    Tesseract is one of the largest Open Source OCR (Optical Character Recognition) projects. There is already a Go library for using Tesseract from Go with CGo, called Gosseract. However if you are interested in OCR from Go without C complicating building and cross-compiling, there aren't any other options. Wazero is a Go WASM runtime that doesn't have any CGo dependencies. With Emscripten Tesseract has been compiled to WASM and ran within Wazero. Gogosseract provides a simple API on top of this. This project has been an interesting delve into the world of WASM.

More dev tools this month

the category →
  • /dev/null▲472

    a social network for devs

    Dev tools · 2d ago · dev-null.sh

  • open-source IDE for thoughtful software design. Contribute to devdotfast/whiteboard development by creating an account on GitHub.

    Dev tools · 27d ago · github.com

  • Contribute to reladraw/reladraw development by creating an account on GitHub.

    Dev tools · 25d ago · github.com

  • OpenBot▲362

    Grok Bot alternative: free, local, open-source, multiplayer

    Dev tools · 22d ago · openbot.run

  • Talanoa▲340

    Hi HN, I’m a fullstack developer, and honestly, I’ve lost count of how many side projects I’ve worked on over the years. But one idea kept coming back to me: a different kind of email client. It first came to me in 2014: “What if we could handle emails more like conversations?” Every year, I’d revisit this concept in my “Build Notes.” Ten years later, no one had built exactly what I had in mind — so I finally decided to do it myself. That’s how Talanoa was born. I wanted something focused on people, not timelines. I was tired of marking messages as unread just to remember to reply later, or…

    Dev tools · 20d ago · talanoa.email

  • CoreSpeed▲332

    One MCP for everything your agents need: apps, memory, tools

    Dev tools · 27d ago · corespeed.io

Source: Show HN post ↗ · launch text quoted in part

Launched alongside, December 2023

the whole month →
  • Hi HN! I’m proud to share that we have built a real 3rd party iMessage client for Android. We did it by reverse engineering the iMessage protocol and encryption system. It's available to download today (no waitlist): https://play.google.com/store/apps/details?id=com.beeper.ima and there's a technical writeup here: https://blog.beeper.com/p/how-beeper-mini-works. Unlike every other attempt to build an iMessage app for Android (including our first gen app), Beeper Mini does not use a Mac server relay in the cloud. The app connects directly to Apple…

    Work · 2023 · beeper.com

  • Hey! I made Heynote entirely for my own use case. For many years, I always had an Emacs instance running with the scratch buffer open, even long after I had abandoned Emacs as my programming editor in favor of more recent IDE:s. The simplicity of having just one big scratch buffer appeals to me, but I still want to separate the different things I jot down somehow (without using tabs or similar). Previously, my solution was to insert a bunch of blank lines between the notes, but hitting C-A would still select the entire buffer. That's why I came up with the concept of "blocks", which turned…

    Work · 2023 · heynote.com

  • LogoFast▲988

    Make beautiful logos with AI, fast & free

    AI · 2023 · logofa.st

  • FuseBase▲939

    Client collaboration platform for professional services

    Dev tools · 2023 · thefusebase.com

  • Beep! 2.0▲871

    Fastest tool to assign and share visual tasks with your team

    Work · 2023 · justbeepit.com

  • Clean Up Your Inbox In Minutes Newsletter management, AI automation, and email analytics. Inbox Zero is the open-source email app that puts you back in control of your inbox.

    AI · 2023 · getinboxzero.com