chaisql/chai
chaisql/chai has 1,709 GitHub stars and 101 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-12 20:59 UTC. Last push 2026-10-20.
Modern embedded SQL database
可以做什么
- Postgres-like SQL – the syntax you already know, embedded in your Go app.
- Pure Go – no CGO or external dependencies.
- Flexible Storage – keep data on disk or run fully in-memory.
- Built on Pebble – powered by CockroachDB’s Pebble engine.
实测星标增长
- 24小时
- 0
- 7天
- 0
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.md
原文ChaiSQL
ChaiSQL is a modern embedded SQL database, written in pure Go, with a PostgreSQL-inspired API. It’s designed for developers who want the familiarity of Postgres with the simplicity of an embedded database.
✨ Highlights
- Postgres-like SQL – the syntax you already know, embedded in your Go app.
- Pure Go – no CGO or external dependencies.
- Flexible Storage – keep data on disk or run fully in-memory.
- Built on Pebble – powered by CockroachDB’s Pebble engine.
🔎 Current Capabilities
ChaiSQL already supports a useful core of SQL features, including:
- Creating and dropping tables & indexes (with composite indexes)
- Inserting, updating, deleting rows
- Basic SELECT queries with filtering, ordering, grouping
- DISTINCT, UNION / UNION ALL
👉 Joins and many advanced features are not implemented yet. The goal is steady growth toward broader PostgreSQL compatibility, but today ChaiSQL is best suited for simpler schemas and embedded use cases.
🗺 Roadmap
ChaiSQL is still in active development and not production-ready. Planned milestones include:
- Finalize stable on-disk storage format (90% complete)
- Broader SQL-92 coverage
- Drivers for other languages (JS/TS, Python, …)
- RocksDB backend support
- Compatibility with PostgreSQL drivers/ORMs
Installation
Install the ChaiSQL driver and CLI:
go install github.com/chaisql/chai@latest
go install github.com/chaisql/chai/cmd/chai@latest
Quickstart
Here’s a simple Go example that creates a table, inserts rows, and queries them:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/chaisql/chai"
)
func main() {
// Open an on-disk database called "mydb"
db, err := sql.Open("chai", "mydb")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// Create schema
_, err = db.Exec(`
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
email TEXT NOT NULL,
age INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
`)
if err != nil {
log.Fatal(err)
}
// Insert some data
_, err = db.Exec(`
INSERT INTO users (id, name, email, age)
VALUES
(1, 'Alice', '[email protected]', 30),
(2, 'Bob', '[email protected]', 25),
(3, 'Carol', '[email protected]', 40);
`)
if err != nil {
log.Fatal(err)
}
// Query active adults
rows, err := db.Query(`
SELECT id, name, email, age
FROM users
WHERE age >= 18
ORDER BY age DESC
`)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id, age int
var name, email string
if err := rows.Scan(&id, &name, &email, &age); err != nil {
log.Fatal(err)
}
fmt.Printf("User %d: %s (%s), %d years old\n", id, name, email, age)
}
}
In-memory Database
For ephemeral databases, just use :memory::
db, err := sql.Open("chai", ":memory:")
Chai shell
The chai command-line tool provides an interactive SQL shell:
# In-memory database:
chai
# Disk-based database:
chai dirName
Contributing
Contributions are welcome!
A big thanks to our contributors!
Made with contrib.rocks.
For any questions or discussions, open an issue.
❓ FAQ
Why not just use SQLite?
SQLite is fantastic, but it has its own SQL dialect. ChaiSQL is designed for PostgreSQL compatibility, so it feels familiar if you already use Postgres.
Is it production-ready?
Not yet. We’re actively building out SQL support and stability.
Can I use existing Postgres tools?
Not yet. ChaiSQL is PostgreSQL-API inspired, but it does not speak the Postgres wire protocol and is not compatible with psql, pg_dump, or drivers that expect a Postgres server.
探索相关项目
Asabeneh/30-Days-Of-Python
30 Days of Python 编程挑战是一份循序渐进的指南,用于在 30 天内学习 Python 编程语言。这项挑战可能需要超过 100 天。请按自己的节奏进行。这些视频或许也有帮助:https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,618 星标grafana/grafana
开放且可组合的可观测性与数据可视化平台。可对来自 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres 等众多数据源的指标、日志和追踪进行可视化。
77,859 星标redis/redis
对于正在构建实时数据驱动应用的开发者而言,Redis 是首选、速度最快且功能最丰富的缓存、数据结构服务器和文档与向量查询引擎。
77,472 星标apache/superset
Apache Superset 是一个数据可视化与数据探索平台
75,495 星标