libsql
sqlite
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libsql
-
Show HN: Roast my SQLite encryption at-rest
> PS: I've got nothing against Turso, or libSQL. In fact I spent the last year perusing their virtual WAL API. The problem is that I found no documentation, nor any useful open source implementations of it. If there any I'd be very interested. So, thus far, I also don't have anything that drives towards libSQL.
Hey, this is v and I am an engineer at Turso. We do have some documentation and an example implementation of Virtual WAL
docs: https://github.com/tursodatabase/libsql/blob/ef44612/libsql-...
example: https://github.com/tursodatabase/libsql/blob/ef44612/libsql-...
for an open source implementation, you may check how Bottomless works. Bottomless is another project which does back up like litestream and it internally implements a Virtual WAL.
Bottomless - https://github.com/tursodatabase/libsql/tree/main/bottomless
I am sure we can improve our docs, make it more discover-able and easy to find. I am open to feedback and suggestions!
-
11 Planetscale alternatives with free tiers
Astro DB is powered by LibSQL, an open source fork of SQLite that was created by Turso. You can use Astro DB's drop-in database to build features like blogs, comment functionality, forums, feedback systems, and user authentication.
-
"If this one guy got hit by a bus, the software would fall apart."
sqlite already had an active community fork started by Turso called libsql. They are fixing longstanding API gaps the upstream team isn’t interested in supporting. For example, they added a native write-ahead log API, so you can plug directly into the WAL for streaming replication. This is possible-ish with upstream sqlite + LiteFs but litefs has to implement a whole FUSE file system and can’t run on Mac for that reason.
It’s more risky to run libsql because new features mean new bugs, but it seems worth it to me.
Libsql: https://github.com/tursodatabase/libsql
- Sqld – A Server Mode for LibSQL
-
Show HN: My Go SQLite driver did poorly on a benchmark, so I fixed it
A bit of a tangent but for those who’d like to use SQLite for a backend, running it as a separate daemon could be an interesting choice, which would also remove there need of Cgo for the build and maybe make things like separate background job processes easier to accomplish. See [1], [2].
—-
1: https://github.com/tursodatabase/libsql/tree/main/libsql-ser...
2: https://news.ycombinator.com/item?id=38602175
- LibSQL, a fork of SQLite accepting third-party contributions
- FLaNK Stack Weekly for 14 Aug 2023
-
SQLite builds for WASI since 3.41.0
https://www.sqlite.org/copyright.html
To summarize, instead of using one of the OSS licenses, the copyright holders simply declare the source to be in the public domain. In order to preserve that status they don't accept patches unless you submit some signed document that you agree with that.
To make things more complicated, they also use their a relatively niche version management system instead of git. Which would complicate making contributions (if they accepted them).
There's a popular fork that fixes all of these issues: https://github.com/libsql/libsql It is MIT licensed, on Github, and open for contributions.
Kind of a weird legal situation for a popular project like this that so many people depend on to have. Not judging; but it is odd. Seems like a lot of wasted efforts between users, would be contributors, and the people that forked this thing to address all that.
-
SQLite is not a toy database
You could try making feature requests for https://github.com/libsql/libsql , which is a community fork of SQLite that aims to speed-up the development of long-wanted features.
-
Get started with libSQL, a next-gen fork of SQLite
For a comprehensive view, check out the issues list for libSQL core and sqld. But mostly, I want libSQL to be a home for all builders who believe there is room to take a lean, mean, and SQLite-compatible embedded database to new heights. I’d love to see your contribution!
sqlite
- Show HN: Roast my SQLite encryption at-rest
-
Show HN: My Go SQLite driver did poorly on a benchmark, so I fixed it
> I would've probably picked the modernc variation
Heads up about the modernc library, it has been stuck on an old version of sqlite for several months [1]. It seems like maintainer time is the limiting factor [2]. There has been a call to arms on that issue page, the maintainer is looking for help, but it looks like not much has arrived. It seems like it might trace back to blockers in the C-to-Go compiler.
It's a major undertaking and a very impressive piece of work, but I'm not surprised it's a struggle when big roadblocks get hit. I hope they find a way to progress, but I'm very relieved to be seeing some CGo-free alternatives like ncruces/go-sqlite3 emerging. I'm going to give it a try for sure and see if I can live with the compromises.
Squinn-go looks very compelling too, but I don't like that it requires the squinn binary to already be installed on a user's machine, I think that gives with one hand and takes with the other: sure, I get to avoid CGo, but I also lose the turnkey, single-command install, static build benefits Go brings out of the box.
Seconding the point about nitty gritty, I'd read it for sure too!
[1]: https://gitlab.com/cznic/sqlite/-/issues/154
-
Show HN: Sqinn-Go is a Golang library for accessing SQLite databases in pure Go
No, but that has the disadvantage of being C compiled into Go, then being compiled into native executable.
I'm actually surprised by how readable this came out; props to the Go->C compiler author. But you can guess that pushing this sort of thing through the Go compiler is going to cause some slowdowns due to sheer paradigm mismatch: https://gitlab.com/cznic/sqlite/-/blob/master/lib/sqlite_lin...
-
Show HN: MongoDB Protocol for SQLite
FWIW, we use a version of SQLite transpiled into Go to avoid CGI problems: https://gitlab.com/cznic/sqlite
-
Go port of SQLite without CGo
It could be clearer in the readme, but note that this is a machine translation from C to Go, repeated for every OS-Arch pair. Example of the one you're most likely to use in production: https://gitlab.com/cznic/sqlite/-/blob/master/lib/sqlite_linux_amd64.go
What are some alternatives?
rqlite - The lightweight, distributed relational database built on SQLite.
chai - Modern embedded SQL database
litellm - Call all LLM APIs using the OpenAI format. Use Bedrock, Azure, OpenAI, Cohere, Anthropic, Ollama, Sagemaker, HuggingFace, Replicate (100+ LLMs)
ffi-overhead - comparing the c ffi (foreign function interface) overhead on various programming languages
jdbc-connector-for-apache-kafka - Aiven's JDBC Sink and Source Connectors for Apache Kafka®
sqlite - Go SQLite3 driver
stream-sqlite - Python function to extract rows from a SQLite file while iterating over its bytes
go-sqlite3 - sqlite3 driver for go using database/sql
StorX-API - A REST API for StorX
sqlparser-rs - Extensible SQL Lexer and Parser for Rust
bottomless
proteus - A simple tool for generating an application's data access layer.