rusqlite
Ergonomic bindings to SQLite for Rust (by rusqlite)
wasi-libc
WASI libc implementation for WebAssembly (by WebAssembly)
Our great sponsors
rusqlite | wasi-libc | |
---|---|---|
13 | 40 | |
1,980 | 648 | |
4.6% | 4.8% | |
7.5 | 6.6 | |
10 days ago | 2 days ago | |
Rust | C | |
MIT License | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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
Posts with mentions or reviews of rusqlite.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-07-19.
-
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.
wasi-libc
Posts with mentions or reviews of wasi-libc.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-02.
-
How to Debug WASI Pipelines with ITK-Wasm
Effective debugging results in effective programming; itk-wasm makes effective debugging of WebAssembly possible. In this tutorial, adapted from the itk-wasm documentation, we walk through how to debug a C++ data processing pipeline with the mature, native binary debugging tools that are comfortable for developers. This is a fully featured way to ensure the base correctness of a processing pipeline. Next, we will walk through an interactive debugging experience for WASI WebAssembly. With itk-wasm, we can debug the same source code in either context with an interactive debugger. We also have a convenvient way to pass data from our local filesystem into a WebAssembly (Wasm) processing pipeline.
-
Running Go code inside a NodeJS app with WASM (Part 1/2, 2023)
Communication between the WASM module and the rest of the application needs to be done in very simple types (bytes, ints and floats). No complex types are supported yet. This is why most WASM compilers also provide some glue-code to map between complex types like strings or arrays. The Web Assembly System Interface (WAS) is an on-progress standard aimed to solve this last limitation; once it's mature it will allow easy interoperation with almost every environment. WASI is already available in some WSAM compilers and runtimes.
-
Exploring Go bindings to SQLite using Wazero
Turns out (as u/FiloSottile predicted) WASI is good enough for the demovfs; it took a couple of patches to wazero (all merged), but it works.
-
We’re the Meilisearch team! To celebrate v1.0 of our open-source search engine, Ask us Anything!
Also, WASI has extremely rudimentary emulated memory mapping support but I would hardly call it working. You can see the current implementation here, it is pretty short: https://github.com/WebAssembly/wasi-libc/blob/main/libc-bottom-half/mman/mman.c
-
I think [...] the "future of computing" is going to be [...] CISC. I’ve read of IBM mainframes that have [hardware instructions for] parsing XML [...]; if you had garbage collection, bounds checking, and type checking in hardware, you’d have fewer and smaller instructions that achieved just as much.
That's referring to its use in browsers. It doesn't have to be used in a browser. If you are using it in a browser, JavaScript is required to interact with the browser APIs - if you're just doing some compute-heavy work, you don't need to talk to JS.
-
WebAssembly: Docker without containers!
I think this is where WASI is trying to fill the void.
- Using syscalls from wasm in node.js?
-
A First Look at Wasm and Docker
WASI is a modular system interface for WebAssembly. We aim to create a system interface that will be a true companion to WebAssembly and last the test of time. This means upholding the key principles of WebAssembly — portability and security.
-
Rethinking Virtualization for Backends
Therefore, the introduction of WASM was followed, a short while later, by WASI - the WebAssembly System Interface. WASI is a standard API to give WASM code the ability to do system-level I/O. This allows WASM code running in a WASI-compliant runtime to do a lot of what a native process can do through syscalls.
- Accessing environment variables from Rust wasm
What are some alternatives?
When comparing rusqlite and wasi-libc you can also consider the following projects:
SQLite - Interface to SQLite
rust-sqlite3 - Rustic bindings for sqlite3
wasm-sqlite - [Experimental] SQLite compiled to WASM with pluggable page storage.
r2d2 - A generic connection pool for Rust
rustsqlite
wasi-sdk - WASI-enabled WebAssembly C/C++ toolchain
wasm-bindgen - Facilitating high-level interactions between Wasm modules and JavaScript
cross - “Zero setup” cross compilation and “cross testing” of Rust crates
Gibbs MySQL Spyglass - Gibbs MySQL Spyglass
WASI - WebAssembly System Interface
wasmtime - A fast and secure runtime for WebAssembly
wasmer - 🚀 The leading WebAssembly Runtime supporting WASI and Emscripten