SQLite: QEMU All over Again?

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

Our great sponsors
  • InfluxDB - Access the most powerful time series database as a service
  • SonarQube - Static code analysis for 29 languages.
  • 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

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • 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


    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.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • 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