sqlite-zstd 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
sqlite-zstd 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
sqlite-zstd 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 LGPL-3.0
开发语言 Rust 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 Alias_Travis
适用人群 未知
收录时间 2022-08-03

软件简介

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)?;
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(1)
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
1 评论
11 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部