SQLite: QEMU All over Again?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • libsql

    libSQL is a fork of SQLite that is both Open Source, and Open Contributions.

    From the README in https://github.com/libsql/libsql:

    > Could SQLite be embedded in the Linux kernel?

    Choosing to license the fork under Apache-2.0 ensures that this will not happen (via this fork, at least), as the license is considered incompatible with the kernel's GPL-2.0-only license.

  • mvsqlite

    Distributed, MVCC SQLite that runs on FoundationDB.

    This project looks really exciting!

    I'm working on mvsqlite [1], a distributed SQLite based on FoundationDB. When doing the VFS integration I have always wanted to patch SQLite itself, but didn't because of uncertainty around correctness of the patched version...

    A few features on my wishlist:

    1. Asynchronous I/O. mvsqlite is currently doing its own prefetch prediction that is not very accurate. I assume higher layers in SQLite have more information that can help with better prediction.

    2. Custom page allocator. SQLite internally uses a linked list to manage database pages - this causes contention on any two transactions that both allocate or free pages.

    3. Random ROWID, without the `max(int64)` row trick. Sequentially increasing ROWIDs is a primary source of contention, and causes significant INSERT slowdown in my benchmark [2].

    [1] https://github.com/losfair/mvsqlite

    [2] https://univalence.me/posts/mvsqlite-bench-20220930

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • mrustc

    Alternative rust compiler (re-implementation)

    I wonder if mrustc [0] would be sufficient to retain the amalgamated build even if Rust were adopted. The regular Rust tool chain would be needed for development still, but if simply depending on the library the Rust components could be transpiled to C…

    [0] - https://github.com/thepowersgang/mrustc

  • Opal

    Ruby ♥︎ JavaScript

  • rqlite

    The lightweight, distributed relational database built on SQLite.

  • wabt

    The WebAssembly Binary Toolkit

    > a single-file distribution literally won't be possible

    Actually.

    You could compile the Rust into Wasm, then the Wasm into C.

    Firefox did this last year [1], so the tools exist and it's neither totally impossible nor totally stupid.

    It _would_ result in some overhead, but not as much as running Wasm through a JIT.

    wasm2c is the tool they apparently used in 2021. [2]

    [1] https://hacks.mozilla.org/2021/12/webassembly-and-back-again...

    [2] https://github.com/WebAssembly/wabt/tree/main/wasm2c

    > wasm2c takes a WebAssembly module and produces an equivalent C source and header.

  • sqlightning

    SQLite3 ported to use LMDB instead of its original Btree code. See https://github.com/LumoSQL/LumoSQL for maintained fork.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • lumosql

    Official Github Mirror of the LumoSQL Database Project (https://lumosql.org/src/lumosql)

  • chiselstore

    SQLite + Little Raft = 🚀

    it? What's the big deal about not fitting well with SQLx? This isn't a requirement for such a library to be successful. What other problems is it allegedly suffering from?

    [1] https://github.com/chiselstrike/chiselstore

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts