GithubHelp home page GithubHelp logo

penberg / libsql Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tursodatabase/libsql

0.0 1.0 0.0 141.76 MB

libSQL is a fork of SQLite that is both Open Source, and Open Contributions.

Home Page: https://libsql.org

License: MIT License

Shell 1.27% JavaScript 1.69% C++ 0.03% C 86.56% Tcl 2.03% C# 0.05% CSS 0.01% Makefile 0.46% HTML 0.28% Batchfile 0.07% Yacc 0.27% M4 0.44% Roff 0.01% Rust 6.65% RenderScript 0.01% Python 0.05% Go 0.11% Dockerfile 0.01% PLpgSQL 0.01% CMake 0.03%

libsql's Introduction

License Discord

What is libSQL?

libSQL is an open source, open contribution fork of SQLite, created and maintained by Turso. We aim to evolve it to suit many more use cases than SQLite was originally designed for, and plan to use third-party OSS code wherever it makes sense.

libSQL is licensed under an Open Source License, and we adhere to a clear Code of Conduct

Features

  • Embedded replicas that allow you to have replicated database inside your app.
  • libSQL server for remote SQLite access, similar to PostgreSQL or MySQL
  • Supports Rust, JavaScript, Python, Go, and more.

There are also various improvements and extensions to the core SQLite:

The comprehensive description can be found here

Getting Started

The project provides two interfaces: the libSQL API, which supports all the features, and the SQLite C API for compatibility.

To get started with the libSQL API:

To build the SQLite-compatible C library and tools, run:

cargo xtask build

To run the SQL shell, launch the libsql program:

$ cd libsql-sqlite3 && ./libsql
libSQL version 0.2.1 (based on SQLite version 3.43.0) 2023-05-23 11:47:56
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
libsql>

Docker

To run libSQL using docker, refer to the Docker Docs

Why a fork?

SQLite has solidified its place in modern technology stacks, embedded in nearly any computing device you can think of. Its open source nature and public domain availability make it a popular choice for modification to meet specific use cases.

But despite having its code available, SQLite famously doesn't accept external contributors and doesn't adhere to a code of conduct. So community improvements cannot be widely enjoyed.

There have been other forks in the past, but they all focus on a specific technical difference. We aim to be a community where people can contribute from many different angles and motivations.

We want to see a world where everyone can benefit from all of the great ideas and hard work that the SQLite community contributes back to the codebase. Community contributions work well, because we’ve done it before. If this was possible, what do you think SQLite could become?

You can read more about our goals and motivation in our product vision and our announcement article

Compatibility with SQLite

Compatibility with SQLite is of great importance for us. But it can mean many things. So here's our stance:

  • The file format: libSQL will always be able to ingest and write the SQLite file format. We would love to add extensions like encryption, and CRC that require the file to be changed. But we commit to always doing so in a way that generates standard sqlite files if those features are not used.
  • The API: libSQL will keep 100% compatibility with the SQLite API, but we may add additional APIs.
  • Embedded: SQLite is an embedded database that can be consumed as a single .c file with its accompanying header. libSQL will always be embeddable, meaning it runs inside your process without needing a network connection. But we may change the distribution, so that object files are generated, instead of a single .c file.

libsql's People

Contributors

marinpostma avatar psarna avatar penberg avatar luciofranco avatar bors[bot] avatar haaawk avatar horusiath avatar honzasp avatar avinassh avatar mergify[bot] avatar athoscouto avatar bearlemma avatar tantaman avatar dyasny avatar ashleygwilliams avatar pjhades avatar benclmnt avatar codingdoug avatar l-jasmine avatar wyhaya avatar lucasvr avatar aqrln avatar glommer avatar neubaner avatar piotrkira avatar tjyang avatar a2xchip avatar quiibz avatar ultrabug avatar dabigblob avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.