| Crates.io | powersync_sqlite_nostd |
| lib.rs | powersync_sqlite_nostd |
| version | 0.4.10 |
| created_at | 2025-11-06 10:58:42.323264+00 |
| updated_at | 2025-12-04 12:53:57.84494+00 |
| description | Lightweight, semi-unsafe, nostd bindings to sqlite3 |
| homepage | https://powersync.com |
| repository | https://github.com/powersync-ja/powersync-sqlite-core |
| max_upload_size | |
| id | 1919441 |
| size | 748,155 |
This is a fork of https://github.com/vlcn-io/sqlite-rs-embedded with adaptations for the PowerSync core extension.
Note: these bindings are faithful to the base SQLite C-API as much as possible for minimum rust<->c overhead. This, however, means that the bindings are not entirely safe. E.g., the SQLite statement object will clear returned values out from under you if you step or finalize it while those references exist in your Rust program.
SQLite is lite. Its bindings should be lite too. They should be able to be used anywhere SQLite is used, not incur any performance impact, not include any extra dependencies, and be usable against any SQLite version.
Thus this repository was born.
These bindings:
By default, this crate compiles to be used in a loadable SQLite extension: All calls are dispatched through
the sqlite3_api_routines struct, and one needs to call EXTENSION_INIT2() from an entrypoint before using
the library.
Outside of loadable extensions, one can enable the static feature. When enabled, calls go to sqlite3_
functions directly, SQLite needs to be linked for this library to work.