diff --git a/README.md b/README.md index 4157396d..364f6804 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,6 @@ -
- - - -
+# ChaiSQL -- ChaiSQL is a modern embedded SQL database, focusing on flexibility and ease of use for developers. It provides a fresh alternative to traditional SQL databases by offering advanced features tailored for modern applications. -
+ChaiSQL is a modern embedded SQL database, focusing on flexibility and ease of use for developers. It provides a fresh alternative to traditional embedded databases by offering advanced features tailored for modern applications. [![Build Status](https://github.com/chaisql/chai/actions/workflows/go.yml/badge.svg)](https://github.com/chaisql/chai/actions/workflows/go.yml) [![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/chaisql/chai) @@ -15,14 +8,24 @@ ## Key Features -- **Modern SQL Experience**: ChaiSQL introduces a modern twist to SQL, offering enhanced features and performance optimizations. -- **Schema Flexibility**: Support for strict, partial, and schemaless table designs, catering to various data modeling needs. +- **Modern SQL Experience**: ChaiSQL introduces a modern twist to traditional SQL embedded databases - **Optimized for Go**: Native Go implementation with no CGO dependency. -- **SQLite Alternative**: Aims to be a modern alternative to SQLite. +- **Solid foundations**: ChaiSQL is backed by [Pebble](https://github.com/cockroachdb/pebble) for native Go toolchains, and [RocksDB](https://rocksdb.org/) for non-Go or CGO builds (coming soon). +- **Schema Flexibility**: Support for strict, partial, and schemaless table designs, catering to various data modeling needs. + +## Roadmap + +ChaiSQL is work in progress and is not ready yet for production. + +Here is a high level list of features that we want to implement in the near future, in no particular order: + +- [ ] Stable storage format (90% completed) +- [ ] Implement most of the SQL-92 standard (detailed roadmap coming soon) +- [ ] Provide clients for other languages (JS/TS, Python, etc) and add support for RocksDB as the backend ## Installation -Install the chai database +Install the ChaiSQL database ```bash go install github.com/chaisql/chai @@ -98,7 +101,7 @@ func main() { err = db.Exec(`INSERT INTO user VALUES ?`, &u) - // Query data + // Query data rows, err := db.Query("SELECT id, name, age, address FROM user WHERE age >= ?", 18) defer rows.Close() @@ -111,8 +114,6 @@ func main() { } ``` -> :warning: Chai's API is still evolving: We are working towards the v1.0.0 release, which will bring stability to the database structure and API. - Checkout the [SQL documentation](https://chaisql.com/docs/essentials/sql-introduction/), the [Go doc](https://pkg.go.dev/github.com/chaisql/chai) and the [usage example](#usage) in the README to get started quickly. ### In-memory database diff --git a/cmd/chai/go.mod b/cmd/chai/go.mod index 41132753..fba5b257 100644 --- a/cmd/chai/go.mod +++ b/cmd/chai/go.mod @@ -4,12 +4,12 @@ go 1.21 require ( github.com/agnivade/levenshtein v1.1.1 + github.com/chaisql/chai v0.16.0 github.com/charmbracelet/bubbles v0.16.1 github.com/charmbracelet/bubbletea v0.24.2 github.com/charmbracelet/lipgloss v0.9.1 github.com/cockroachdb/errors v1.11.1 - github.com/cockroachdb/pebble v0.0.0-20231130180345-51fca96df08f - github.com/chaisql/chai v0.16.0 + github.com/cockroachdb/pebble v1.0.0 github.com/stretchr/testify v1.8.4 github.com/urfave/cli/v2 v2.25.7 go.uber.org/multierr v1.11.0 @@ -25,7 +25,6 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/redact v1.1.5 // indirect - github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/cmd/chai/go.sum b/cmd/chai/go.sum index c12f8ce5..a300180e 100644 --- a/cmd/chai/go.sum +++ b/cmd/chai/go.sum @@ -20,20 +20,16 @@ github.com/charmbracelet/bubbletea v0.24.2 h1:uaQIKx9Ai6Gdh5zpTbGiWpytMU+CfsPp06 github.com/charmbracelet/bubbletea v0.24.2/go.mod h1:XdrNrV4J8GiyshTtx3DNuYkR1FDaJmO3l2nejekbsgg= github.com/charmbracelet/lipgloss v0.9.1 h1:PNyd3jvaJbg4jRHKWXnCj1akQm4rh8dbEzN1p/u1KWg= github.com/charmbracelet/lipgloss v0.9.1/go.mod h1:1mPmG4cxScwUQALAAnacHaigiiHB9Pmr+v1VEawJl6I= -github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= -github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877 h1:1MLK4YpFtIEo3ZtMA5C795Wtv5VuUnrXX7mQG+aHg6o= +github.com/cockroachdb/datadriven v1.0.3-0.20230801171734-e384cf455877/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895 h1:XANOgPYtvELQ/h4IrmPAohXqe2pWA8Bwhejr3VQoZsA= -github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895/go.mod h1:aPd7gM9ov9M8v32Yy5NJrDyOcD8z642dqs+F0CeNXfA= -github.com/cockroachdb/pebble v0.0.0-20231130180345-51fca96df08f h1:XkkAFIUJ3t1Wt/z9wXqZaebwiZteIzmQfAkN4IHQKLY= -github.com/cockroachdb/pebble v0.0.0-20231130180345-51fca96df08f/go.mod h1:BHuaMa/lK7fUe75BlsteiiTu8ptIG+qSAuDtGMArP18= +github.com/cockroachdb/pebble v1.0.0 h1:WZWlV/s78glZbY2ylUITDOWSVBD3cLjcWPLRPFbHNYg= +github.com/cockroachdb/pebble v1.0.0/go.mod h1:bynZ3gvVyhlvjLI7PT6dmZ7g76xzJ7HpxfjgkzCGz6s= github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= -github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=