factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Vibe-coded NIST compatible database in Rust
Translation pending
DataRust · ShellGitHub @rjwaltersOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗SQL:1999 compliant database in Rust, 100% AI-generated
Live Demo | CLI Guide | Python Bindings | Conformance Report
openraftVACUUM garbage collectionBuilt entirely by AI agents using Claude Code and Loom.
# Clone and build
git clone --recurse-submodules https://github.com/rjwalters/vibesql.git
cd vibesql
cargo build --release
# Run the CLI
cargo run --release --bin vibesql
# Or try the web demo
cd web-demo && pnpm install && pnpm dev
$ cargo run --release --bin vibesql
vibesql> CREATE TABLE users (id INTEGER, name VARCHAR(50));
vibesql> INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob');
vibesql> SELECT * FROM users;
+----+-------+
| id | name |
+----+-------+
| 1 | Alice |
| 2 | Bob |
+----+-------+
vibesql> \q
See CLI Guide for meta-commands, output formats, and import/export.
pip install maturin
maturin develop
import vibesql
db = vibesql.connect()
cursor = db.cursor()
cursor.execute("CREATE TABLE t (id INTEGER, name VARCHAR(50))")
cursor.execute("INSERT INTO t VALUES (1, 'Hello')")
cursor.execute("SELECT * FROM t")
print(cursor.fetchall()) # [(1, 'Hello')]
See Python Bindings Guide for full API reference.
Subscribe to SQL queries and receive automatic updates when data changes—Convex-like reactivity with full SQL power.
import { VibeSqlClient } from '@vibesql/client';
const db = new VibeSqlClient({ host: 'localhost', port: 5432 });
await db.connect();
// Subscribe to a query - get updates when data changes
const subscription = db.subscribe(
'SELECT * FROM messages WHERE channel_id = $1 ORDER BY created_at DESC LIMIT 50',
[channelId],
{
onData: (messages) => setMessages(messages),
onDelta: (delta) => {
// Efficient incremental updates
if (delta.type === 'insert') addMessage(delta.row);
if (delta.type === 'delete') removeMessage(delta.row);
},
}
);
// React hook for easy integration
function ChatRoom({ channelId }) {
const { data, isLoading } = useSubscription(db,
'SELECT * FROM messages WHERE channel_id = $1',
[channelId]
);
return <MessageList messages={data} />;
}
Features:
useSubscription, useQuery)VACUUM / VACUUM INTO for on-demand GCvibesql-consensus crate) — leader leases, bounded-staleness follower reads, replicated HTTP/GraphQL/CRUD/subscriptionsVibeSQL achieves 5,307 TPS on TPC-C mixed workload (6.7x faster than SQLite) and passes 100% of TPC-H and TPC-DS queries. Live numbers at vibesql.org.
| Suite | Coverage | Tests |
|---|---|---|
| SQL:1999 Core | 100% | 739/739 sqltest |
| SQLLogicTest | 100% | 622 files (~7.4M tests) |
| Unit Tests | - | 7,000+ tests |
| TPC-DS | 100% | 102/102 queries |
| TPC-H | 100% | 22/22 queries |
| TPC-C | 100% | All transactions |
| Database | TPS | vs SQLite |
|---|---|---|
| VibeSQL | 5,307 | 6.7x faster |
| SQLite | 795 | baseline |
| DuckDB | 95 | 8.4x slower |
Scale Factor 1, 60-second duration, mixed workload (New Order, Payment, Order Status, Delivery, Stock Level). v0.2.0 cycle, 2026-06-15.
102/102 queries passing (100%) at SF 0.001. All queries complete within timeout.
Peak memory: ~141 MB. See full results.
22/22 queries passing (100%). All queries optimized with columnar execution and cost-based join reordering.
# Build release binaries first
cargo build --release
# Run all benchmarks
make benchmark # TPC-H, TPC-C, TPC-DS, Sysbench
# Individual benchmarks
make benchmark-tpch # TPC-H (22 queries, SF 0.01)
make benchmark-tpcc # TPC-C (OLTP, SF 1)
make benchmark-tpcds # TPC-DS (102 queries, SF 0.001)
make benchmark-sysbench # Sysbench (point lookups, range scans)
# With custom parameters
SCALE_FACTOR=0.01 PROFILING_ITERATIONS=3 cargo bench --bench tpch_profiling
TPCC_SCALE_FACTOR=1 TPCC_DURATION_SECS=10 cargo bench --bench tpcc_benchmark
See Benchmarking Guide for details on parameters and profiling.
New to the repo? Run ./install.sh to install all macOS dev-environment prerequisites (Rust, wasm-pack, maturin, pnpm, etc. — see ./install.sh --check to preview what's missing) before make all.
# Full build + test (foreground by default)
make all # Build, test, and run TCL tests (foreground)
make all-bg # Same, in the background (long builds)
make status # Check progress of a background run
make logs # Follow full output of a background run
# Individual targets
make build # Build all crates
make test # Run all tests (unit + integration + sqllogictest)
make benchmark # Run TPC-H/TPC-C/TPC-DS/Sysbench benchmarks
make help # Show all targets
This repo also uses Loom for AI-powered development orchestration; ./loom.sh is a convenience wrapper to start the Loom daemon from the repository root (see ./loom.sh --help).
| Guide | Description |
|---|---|
| TypeScript SDK | Real-time subscriptions & React hooks |
| Drizzle ORM | Type-safe queries with Drizzle adapter |
| HTTP API | REST, GraphQL, and SSE endpoints |
| CLI Guide | Command-line interface |
| Python Bindings | Python API reference |
| Scheduled Functions | Cron jobs and scheduled tasks |
| Transactions | Durability hints and savepoints |
| Vector Search | AI/ML embeddings and similarity search |
| File Storage | Blob storage with SQL integration |
| ODBC/JDBC | Database connectivity |
| Roadmap | Future plans |
| History |
This project originated from a challenge about AI capabilities: implement a NIST-compatible SQL database from scratch. Core SQL:1999 compliance was achieved in under 2 weeks (Oct 25 - Nov 1, 2025).
Inspired by posix4e/nistmemsql.
MIT OR Apache-2.0. See LICENSE-MIT and LICENSE-APACHE.
See CLAUDE.md for development workflow with Loom AI orchestration.
| Development timeline |