GlueSQL 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
GlueSQL 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
GlueSQL 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Rust
操作系统 跨平台
软件类型 开源软件
所属分类 数据库相关
开源组织
地区 不详
投 递 者 白开水不加糖
适用人群 未知
收录时间 2021-09-15

软件简介

GlueSQL 是一个用 Rust 编写的 SQL 数据库库。它提供了一个解析器(sqlparser-rs)、执行层和可选的存储(sled)打包成一个库。开发者可以选择使用 GlueSQL 来建立他们自己的 SQL 数据库,或者作为一个使用默认存储引擎的嵌入式 SQL 数据库。
 
你可以将 GlueSQL 作为一个嵌入式 SQL 数据库。GlueSQL 提供 sled 作为默认的存储引擎。 
use gluesql::*;
fn main() {
    let storage = SledStorage::new("data/doc-db").unwrap();
    let mut glue = Glue::new(storage);
    let sqls = vec![
        "DROP TABLE IF EXISTS Glue;",
        "CREATE TABLE Glue (id INTEGER);",
        "INSERT INTO Glue VALUES (100);",
        "INSERT INTO Glue VALUES (200);",
        "SELECT * FROM Glue WHERE id > 100;",
    ];

    for sql in sqls {
        let output = glue.execute(sql).unwrap();
        println!("{:?}", output)
    }
}

 GlueSQL 目前支持一个有限的查询子集。它正在积极开发中。

  • CREATE TABLE有 8 种类型:INTEGERFLOATBOOLEANTEXTDATETIMESTAMPTIMEINTERVAL
  • ALTER TABLE有 4 个操作:ADD COLUMNDROP COLUMNRENAME COLUMNRENAME TO
  • CREATE INDEXDROP INDEX
  • INSERTUPDATEDELETESELECTDROP TABLE
  • GROUP BYHAVING
  • ORDER BY
  • 事务查询:BEGINROLLBACKCOMMIT
  • 嵌套选择、连接、聚合...

可以在 src/tests/* 中查看当前支持的查询的测试。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{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}}
没有更多内容
暂无内容
暂无内容
0 评论
10 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部