sqlite-zstd 用 Rust 编写的 SQLite 压缩扩展开源项目

我要开发同款
匿名用户2022年08月03日
320阅读

技术信息

开源地址
https://github.com/phiresky/sqlite-zstd
授权协议
LGPL-3.0

作品详情

sqlite-zstd是 SQLite的扩展,为 SQLite提供透明的基于字典的行级压缩。这允许你压缩 SQLite数据库中的条目,就像你压缩整个数据库文件一样,但同时保留了随机访问。

根据不同的数据,这可以将数据库的大小减少80%,同时保持大部分的性能不变(甚至可以提高性能,因为从磁盘上读取的数据更小)。

编译

该项目可以以两种模式构建:

作为Rust库作为纯SQLite扩展

可以从GitHubrelease中获取SQLite扩展二进制文件,或者可以手动构建扩展:

cargobuild--release--featuresbuild_extesio#shouldgiveyoutarget/release/libsqlite_zstd.so用法

可以将此库作为SQLite扩展或作为Rust库加载。请注意,sqlite扩展不是持久的,因此每次连接数据库时都需要加载它。

SqliteCLI

在REPL中加载它:

$sqlite3file.dbSQLiteversio3.34.02020-12-0116:14:00sqlite>.load.../libsqlite_zstd.so[2020-12-23T21:30:02ZINFOsqlite_zstd::create_extesio][sqlite-zstd]iitializedsqlite>

或者:

sqlite3-cmd'.loadlibsqlite_zstd.so''select*fromfoo'

CAPI

itsuccess=sqlite3_load_extesio(db,"libsqlite_zstd.so",NULL,NULL);

Rust

推荐的方法是添加sqlite_zstd作为项目的依赖项,然后使用

letco:rusqlite::Coectio;sqlite_zstd::load(&co)?;

或者,也可以像任何其他扩展一样加载扩展:

letco:rusqlite::Coectio;co.load_extesio("libsqlite_zstd.so",Noe)?;

功能介绍

sqlite-zstd 是 SQLite 的扩展,为 SQLite 提供透明的基于字典的行级压缩。这允许你压缩 SQLite 数据库中的条目,就像你压缩整个数据库文件一样,但同时保留了随机访问。...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论