rusqlite
SQLite
Our great sponsors
rusqlite | SQLite | |
---|---|---|
13 | 32 | |
1,980 | 3,752 | |
4.6% | - | |
7.5 | 9.8 | |
10 days ago | 2 days ago | |
Rust | C | |
MIT License | GNU General Public License v3.0 or later |
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.
rusqlite
-
Embedded SQL database
As far as I know, the only option for an embedded SQL database is SQLite. The most actively maintained one, for rust, seems to be rusqlite (https://github.com/rusqlite/rusqlite).
-
SQLite extension to query Excel (.xlsx, .xls, .ods) files as virtual tables
Yes, but it's readonly. Also they did not merge loadable extensions support, which I need - https://github.com/rusqlite/rusqlite/pull/910
-
Rust for competitive programming
rusqlite 0.27.0, which looks like it's still the latest version
-
Store SQLite in Cloudflare Durable Objects
SQLite is written in C, while workers is based on V8 isolates, so it mainly runs JavaScript. Fortunately, it also supports running WASM through initialising and calling WASM modules via JavaScript. Emscripten can be used to build WASM from C, but I'd rather use it through Rust (using rusqlite), so this is what I focus on right away. Workers can also be written entirely in Rust using worker-rs.
-
I wrote a telegram bot in rust - a brief story and bot description
For the persistence layer I used Rusqlite and r2d2-sqlite for creating a connection pool.
-
Is the chrono crate unmaintained?
There are feature flags in chrono that make possible to disable usage of time: https://github.com/rusqlite/rusqlite/pull/1031
-
Hey Rustaceans! Got an easy question? Ask here (10/2021)!
I want to use arrays in sqlite but the documentations for rusqlite doesn't have examples of how to use the extra array feature. How do I store and search text arrays in rusqlite?
-
New chapter on the series - Writing a SQLite clone from scratch in Rust
Since this is a learning project, its probably not a good idea to count on this being production ready. If you need SQLite in your project checkout rusqlite. And for cross compiling issues simply use its bundled feature, makes it a breeze.
SQLite
-
SQLite VS sqlite_blaster - a user suggested alternative
2 projects | 17 Mar 2023
-
Ask HN: Best book to learn C in 2022?
"C in a Nutshell 2nd Ed" (O'Reilly, Prinz & Craqford, 2015) is a good reference although maybe not the best for a walk-through learning experience. It also has good chapters on tooling (gcc, make, gdb).
There's a recent book out I came across called "Bare Metal C" (No Starch Press, Oualline, 2022) which unpacks embedded programming in a very readable manner. I imagine a lot, if not most, C programming these days is done in the low-level embedded world, and this book clears up a lot of the mysteries.
https://nostarch.com/bare-metal-c
Also it never hurts to look at a good open-source codebase written in C, for example the SQLite code is worth looking at (if a bit overwhelming):
-
SQLite Helps You Do Acid
> After that, 510 bytes are used for the SHARED lock. A byte range is used here to accommodate older Windows versions with mandatory locks.
I was curious how old, and... wow, that code is for Windows versions that predate the NT kernel (Win95/98/ME). I'm surprised that it's still around, but the comment does a great job of explaining it.
https://github.com/sqlite/sqlite/blob/3cf46ee508e97b46736a26...
-
Technical Writing Courses from Google
I wouldn't rely on Google to learn good practices for technical documentation (unless they want to release their complete internal technical documents on how their recommendation algorithms work, that is).
Instead, check out a reliable open source project like SQLITE, they have great documentation:
-
SQLite Internals: Pages and B-trees
> https://github.com/sqlite/sqlite/blob/master/src/btreeInt.h
Woah, Ben! I'm so glad the above link was shared above; thanks to the poster as well. There's a very good amount of in-depth knowledge shared via comments and a reference to Donald knuth's book
Here's a header file that basically mirrors some of what the article is talking about, the layout of pages and the btree and so on (~lines 100-200)
https://github.com/sqlite/sqlite/blob/master/src/btreeInt.h
The code for the btree functions is here and is a bit over my head TBH with all the locks and read permissions and so on but it's a nice example of how to comment code I think:
-
Is there a C book / website to learn C like the Rust book?
But C doesn't come with these types of APIs "out of the box" because C is expected to be used on way too many systems to standardize things of that nature. In a lot of ways "doing C right" means following commonplace patterns on hardware similar to the hardware you are targeting. If you're targeting commonplace desktop or server machines I suggest you take a look at a lot of software written in C that target those platforms -- projects like Sqlite, and modern source ports of Doom such as chocolate doom. Both are available to read for free on github, https://github.com/sqlite/sqlite https://github.com/chocolate-doom/chocolate-doom
- Pytest is failing on GitHub Actions but succeeds locally
What are some alternatives?
SQLite - Interface to SQLite
rust-sqlite3 - Rustic bindings for sqlite3
sqlcipher - SQLCipher is a standalone fork of SQLite that adds 256 bit AES encryption of database files and other security features.
wasm-sqlite - [Experimental] SQLite compiled to WASM with pluggable page storage.
LevelDB - LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
RocksDB - A library that provides an embeddable, persistent key-value store for fast storage.
r2d2 - A generic connection pool for Rust
rustsqlite
sqlite_orm - ❤️ SQLite ORM light header only library for modern C++
cross - “Zero setup” cross compilation and “cross testing” of Rust crates
phpMyAdmin - A web interface for MySQL and MariaDB
Gibbs MySQL Spyglass - Gibbs MySQL Spyglass