Skip to content
This repository has been archived by the owner on May 12, 2024. It is now read-only.

SeaQL/otter-sql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

This is still WIP and essentially an unpublished project

OtterSQL

🦦 An Embeddable SQL Executor in Rust

crate badge docs badge github workflow badge

OtterSQL implements a generic intermediate code (IC) with an instruction set for tabular data operations. This IC can be used to make in-memory mocks of larger databases such as MySQL and SQLite. This IC is executed by the OtterSQL VM. This project also provides a frontend that compiles a generic dialect of SQL to the IC.

The primary goal for this project is to facilitate developers in testing their SQL-backed applications. The long term goal is to have an embeddable SQL VM for use in client-side applications.

Non-goals (for now): performance, concurrency, persistence, ACID compliance.

Introduction

See this blog post for an introduction of OtterSQL.

Using as a library

See the crate documentation.

Features

Currently implemented

  • CREATE TABLE/CREATE SCHEMA
  • INSERT values
  • Projection (SELECTing specific columns)
  • Filter (WHERE clause of SELECT) with complex expressions
  • LIMIT
  • ORDER BY

In-progress or in the near future

  • UPDATE: execution
  • Unions and Joins: execution
  • Group by: execution
  • Nested SELECT: codegen and execution
  • Common table expressions (CTEs): codegen and execution
  • Uphold table constraints: codegen and execution

In the far future

  • MySQL dialect and features
  • SQLite dialect and features

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Mascot

Meet the official mascot of OtterSQL. He lives in the sea and loves reading books.

About

🦦 An Embeddable SQL Executor in Rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Contributors 4

  •  
  •  
  •  
  •  

Languages