Initial commit: New MoreminiMore website with fresh design
This commit is contained in:
171
node_modules/libsql/README.md
generated
vendored
Normal file
171
node_modules/libsql/README.md
generated
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
# libSQL API for JavaScript/TypeScript
|
||||
|
||||
[](https://badge.fury.io/js/libsql)
|
||||
[](https://www.phorm.ai/query?projectId=3c9a471f-4a47-469f-81f6-4ea1ff9ab418)
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **Turso database and libSQL are two different projects from the same team.**
|
||||
>
|
||||
> **libSQL** (this repository) is an open-source fork of SQLite. It extends SQLite with features like embedded replicas and remote access, but inherits SQLite's fundamental limitations such as the single-writer model.
|
||||
>
|
||||
> **[Turso database](https://github.com/tursodatabase/turso)** is a SQLite-compatible database rewritten from scratch in Rust. It is **not** a fork of SQLite — it is a completely new implementation that goes beyond what any SQLite fork can offer, including concurrent writes and bi-directional sync with offline support. Turso is currently in beta.
|
||||
>
|
||||
> **If you're starting a new project, you probably want to look into [Turso](https://github.com/tursodatabase/turso).** libSQL is actively maintained, but new features are being developed in Turso.
|
||||
|
||||
[libSQL](https://github.com/libsql/libsql) is an open source, open contribution fork of SQLite.
|
||||
This source repository contains libSQL API bindings for Node, which aims to be compatible with [better-sqlite3](https://github.com/WiseLibs/better-sqlite3/), but with opt-in promise API.
|
||||
|
||||
## Features
|
||||
|
||||
* In-memory and local libSQL/SQLite databases
|
||||
* Remote libSQL databases
|
||||
* Embedded, in-app replica that syncs with a remote libSQL database
|
||||
* Supports Bun, Deno, and Node on macOS, Linux, and Windows.
|
||||
|
||||
## Installing
|
||||
|
||||
You can install the package with:
|
||||
|
||||
**Node:**
|
||||
|
||||
```sh
|
||||
npm i libsql
|
||||
```
|
||||
|
||||
**Bun:**
|
||||
|
||||
```sh
|
||||
bun add libsql
|
||||
```
|
||||
|
||||
**Deno:**
|
||||
|
||||
Use the `npm:` prefix for package import:
|
||||
|
||||
```typescript
|
||||
import Database from 'npm:libsql';
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
* [API reference](docs/api.md)
|
||||
|
||||
## Getting Started
|
||||
|
||||
To try out your first libsql program, type the following in `hello.js`:
|
||||
|
||||
```javascript
|
||||
import Database from 'libsql';
|
||||
|
||||
const db = new Database(':memory:');
|
||||
|
||||
db.exec("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)");
|
||||
db.exec("INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.org')");
|
||||
|
||||
const row = db.prepare("SELECT * FROM users WHERE id = ?").get(1);
|
||||
|
||||
console.log(`Name: ${row.name}, email: ${row.email}`);
|
||||
```
|
||||
|
||||
and then run:
|
||||
|
||||
```shell
|
||||
$ node hello.js
|
||||
```
|
||||
|
||||
To use the promise API, import `libsql/promise`:
|
||||
|
||||
```javascript
|
||||
import Database from 'libsql/promise';
|
||||
|
||||
const db = new Database(':memory:');
|
||||
|
||||
await db.exec("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)");
|
||||
await db.exec("INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.org')");
|
||||
|
||||
const stmt = await db.prepare("SELECT * FROM users WHERE id = ?");
|
||||
const row = stmt.get(1);
|
||||
|
||||
console.log(`Name: ${row.name}, email: ${row.email}`);
|
||||
```
|
||||
|
||||
#### Connecting to a local database file
|
||||
|
||||
```javascript
|
||||
import Database from 'libsql';
|
||||
|
||||
const db = new Database('hello.db');
|
||||
````
|
||||
|
||||
#### Connecting to a Remote libSQL server
|
||||
|
||||
```javascript
|
||||
import Database from 'libsql';
|
||||
|
||||
const url = process.env.LIBSQL_URL;
|
||||
const authToken = process.env.LIBSQL_AUTH_TOKEN;
|
||||
|
||||
const opts = {
|
||||
authToken: authToken,
|
||||
};
|
||||
|
||||
const db = new Database(url, opts);
|
||||
```
|
||||
|
||||
#### Creating an in-app replica and syncing it
|
||||
|
||||
```javascript
|
||||
import libsql
|
||||
|
||||
const opts = { syncUrl: "<url>", authToken: "<optional auth token>" };
|
||||
const db = new Database('hello.db', opts);
|
||||
db.sync();
|
||||
```
|
||||
|
||||
#### Creating a table
|
||||
|
||||
```javascript
|
||||
db.exec("CREATE TABLE users (id INTEGER, email TEXT);")
|
||||
```
|
||||
|
||||
#### Inserting rows into a table
|
||||
|
||||
```javascript
|
||||
db.exec("INSERT INTO users VALUES (1, 'alice@example.org')")
|
||||
```
|
||||
|
||||
#### Querying rows from a table
|
||||
|
||||
```javascript
|
||||
const row = db.prepare("SELECT * FROM users WHERE id = ?").get(1);
|
||||
```
|
||||
|
||||
## Developing
|
||||
|
||||
To build the `libsql` package, run:
|
||||
|
||||
```console
|
||||
LIBSQL_JS_DEV=1 npm run build
|
||||
```
|
||||
|
||||
You can then run the integration tests with:
|
||||
|
||||
```console
|
||||
export LIBSQL_JS_DEV=1
|
||||
npm link
|
||||
cd integration-tests
|
||||
npm link libsql
|
||||
npm test
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the [MIT license].
|
||||
|
||||
### Contribution
|
||||
|
||||
Unless you explicitly state otherwise, any contribution intentionally submitted
|
||||
for inclusion in libSQL by you, shall be licensed as MIT, without any additional
|
||||
terms or conditions.
|
||||
|
||||
[MIT license]: https://github.com/libsql/libsql-node/blob/main/LICENSE
|
||||
Reference in New Issue
Block a user