sqlite-zstd用 Rust 编写的 SQLite 压缩扩展
sqlite-zstd 是 SQLite 的扩展,为 SQLite 提供透明的基于字典的行级压缩。这允许你压缩 SQLite 数据库中的条目,就像你压缩整个数据库文件一样,但同时保留了随机访问。
根据不同的数据,这可以将数据库的大小减少 80%,同时保持大部分的性能不变(甚至可以提高性能,因为从磁盘上读取的数据更小)。
编译
该项目可以以两种模式构建:
- 作为 Rust 库
- 作为纯 SQLite 扩展
可以从 GitHub release 中获取 SQLite 扩展二进制文件,或者可以手动构建扩展:
cargo build --release --features build_extension
# should give you target/release/libsqlite_zstd.so
用法
可以将此库作为 SQLite 扩展或作为 Rust 库加载。 请注意,sqlite 扩展不是持久的,因此每次连接数据库时都需要加载它。
Sqlite CLI
在 REPL 中加载它:
$ sqlite3 file.db SQLite version 3.34.0 2020-12-01 16:14:00 sqlite> .load .../libsqlite_zstd.so [2020-12-23T21:30:02Z INFO sqlite_zstd::create_extension] [sqlite-zstd] initialized sqlite>
或者:
sqlite3 -cmd '.load libsqlite_zstd.so' 'select * from foo'
C API
int success = sqlite3_load_extension(db, "libsqlite_zstd.so", NULL, NULL);
Rust
推荐的方法是添加 sqlite_zstd
作为项目的依赖项,然后使用
let conn: rusqlite::Connection; sqlite_zstd::load(&conn)?;
或者,也可以像任何其他扩展一样加载扩展:
let conn: rusqlite::Connection; conn.load_extension("libsqlite_zstd.so", None)?;
评论
Rust Doom用 Rust 编写的 Doom 渲染器
RustDoom是一个用 Rust 编写的Doom1&2渲染器。这些代码主要是基于DoomWiki和非官方的DoomSpecs,并不是将原始的DoomC源代码移植到Rust中;构建说明Rust
Rust Doom用 Rust 编写的 Doom 渲染器
0
NativeScript sqliteNativeScript 的 sqlite 扩展
NativeScript sqlite 是 NativeScript 的 sqlite 扩展。
NativeScript sqliteNativeScript 的 sqlite 扩展
0
Rust SGX SDK用 Rust 编写 Intel SGX 应用
RustSGXSDK是一个来自百度安全实验室的开源项目,它将Rust语言和IntelSGX技术进行结合,可通过该项目用Rust语言编写IntelSGX应用程序。环境要求Ubuntu16.04Intel
Rust SGX SDK用 Rust 编写 Intel SGX 应用
0
Persy用 Rust 编写的事务存储引擎
Persy是一个用Rust编写的事务存储引擎。安装将其添加为项目的依赖项:[dependencies]persy="1.0"例子创建一个新的persy文件,在其中保存一些数据并进行扫描。usepers
Persy用 Rust 编写的事务存储引擎
0
NativeScript sqliteNativeScript 的 sqlite 扩展
NativeScriptsqlite是NativeScript的sqlite扩展。
NativeScript sqliteNativeScript 的 sqlite 扩展
0