这个项目能做什么
bytdb 是一个嵌入式、纯 Go 编写的关系型数据库,旨在填补 SQLite 的生态位,同时使用 Postgres 方言。它完全在应用程序进程内运行,无需外部服务器、无需 cgo、无需 socket 通信。
主要技术特性包括:
- **Postgres 兼容性**:通过 `pgwire` 支持 Postgres 线协议,允许 `psql`、`pgx` 以及各种 ORM(如 GORM)等工具直接连接。它实现了 Postgres 方言的一个子集,包括窗口函数、CTE、连接和 `jsonb` 支持。
- **嵌入式架构**:作为基于 `btypedb` 的关系层构建,它将表、行和二级索引编码到单个有序键空间中。这允许高效的键扫描和原子操作。
- **并发与事务**:默认提供可串行化事务。它还提供乐观并发控制(OCC)模式,适用于高性能的读密集型工作负载。
- **数据类型**:支持 Postgres 级别类型,包括 `timestamp[tz]`、`date`、`uuid`、`text[]` 和 `jsonb`,并带有完整的运算符族。
- **持久性与安全性**:具备预写日志(WAL)以应对断电持久性,可选的静态 AES-256-GCM 加密,以及异步复制到兼容 S3 的对象存储(类似于 Litestream)。
- **Schema 管理**:支持稀疏行值,允许仅元数据的 schema 变更,如 `AddColumn` 和 `DropColumn`,无需重写整个表。
该数据库可以通过标准的 `database/sql` 驱动、直接的 SQL API,或通过 Postgres 线协议作为独立服务器使用。
评论
0 评分人数达到10人后显示
登录后参与讨论。