#sql #mysql #sqlite

otter-sql

🦦 可嵌入的SQL执行器

3个版本

0.1.2 2023年1月23日
0.1.1 2023年1月23日
0.1.0 2023年1月23日

#2652数据库接口

MIT/Apache

460KB
4.5K SLoC

OtterSQL

🦦 Rust中的可嵌入SQL执行器

crate badge docs badge github workflow badge

OtterSQL实现了一个通用的中间代码(IC),它有一个用于表数据操作的指令集。这个IC可以用来制作MySQL和SQLite等大型数据库的内存模拟。这个IC由OtterSQL虚拟机执行。此项目还提供了一个前端,可以将通用的SQL方言编译为IC。

此项目的主要目标是帮助开发者测试他们的基于SQL的应用程序。长期目标是拥有一个可嵌入的SQL虚拟机,用于客户端应用程序。

非目标(目前):性能、并发、持久性、ACID合规性。

简介

请参阅 此博客文章 了解OtterSQL的介绍。

作为库使用

请参阅 包文档

特性

当前已实现

  • CREATE TABLE/CREATE SCHEMA
  • INSERT
  • 投影(选择特定列)
  • 过滤(SELECTWHERE子句)和复杂表达式
  • LIMIT
  • ORDER BY

正在进行或即将到来

  • UPDATE:执行
  • 联合和连接:执行
  • 分组:执行
  • 嵌套SELECT:代码生成和执行
  • 公用表表达式(CTEs):代码生成和执行
  • 保持表约束:代码生成和执行

未来

  • MySQL方言和特性
  • SQLite方言和特性

贡献

除非你明确声明,否则任何旨在包含在本作品中的贡献,如Apache-2.0许可证中定义的,都应按上述方式双授权,而不附加任何额外条款或条件。

吉祥物

认识OtterSQL的官方吉祥物。他生活在海洋中,喜欢阅读书籍。

依赖关系

~6MB
~125K SLoC