A wrapper for
libsql-stateless
that provides a much better DX
- ✅ Supported runtime environments: Web API (browser, serverless), Bun, Node.js (>=18)
- ✅ Is built for: Quick stateless query execution. (Mainly for serverless and edge functions.)
- ✅ Supports everything in
@libsql/client/web
**except (explicit)transactions
. - ✅ The API provided by
libsql-stateless-easy
is simple and exactly the same as@libsql/client/web
. ⚠️ libsql-stateless-easy
comes with the cost of (computational and memory) overheads potentially unneeded by you. But is still very very very slim compared to@libsql/client/web
.
For better performance lower resource use, consider using libsql-stateless
instead: it, however, has a pretty raw and explicit API unappreciated by many developers.
$ npm i libsql-stateless-easy #pnpm, yarn, etc.
# or
$ bun add libsql-stateless-easy
libsql-stateless-easy
's client
has the exact same API as @libsql/client/web
's client
.
import { createClient } from "libsql-stateless-easy";
//or
const { createClient } = require("libsql-stateless-easy");
const client = createClient({
url: "https://da-fish-mandible.turso.io",
authToken: "fksdgfgksdgfksdg.javsdKDGKSBkgsdfg289374dg"
});
const res = await client.batch([
{
sql: "select * from contacts where contact_id = ?;",
args: [3]
},
"select first_name, last_name, email from contacts where contact_id = 2",
{
sql: "insert into contacts (contact_id,first_name,last_name,email,phone) values (?,?,?,?,?);",
args: [6,"glomm","feru","moca@doro.co","001"]
},
{
sql: "delete from contacts where contact_id = :kkl",
args: {kkl: 6}
}
]);
console.log(res);
const res2 = await client.execute({
sql: "select first_name, last_name, email, contact_id from contacts where contact_id = ?;",
args: [1]
});
console.log(res2);
const res3 = await client.serverOk();
if (res3) console.log("Server Compat Check OK");
else console.error("Server Compat Check NOT OK");
libsql-stateless-easy
's client
works with drizzle out-of-the-box.
import { createClient } from "libsql-stateless-easy";
import { drizzle } from 'drizzle-orm/libsql';
(async () => {
const client = createClient({
url: "https://da-fish-mandible.turso.io",
authToken: "fksdgfgksdgfksdg.javsdKDGKSBkgsdfg289374dg"
});
const db = drizzle(client);
const result = await db.select().from(table_name).all();
console.log(result);
})();
- This library has the exact
LibsqlError
API as@libsql/client
I'll complete it when I have more time.
Feel free to explore them (or even contribute to the documentation!)
import {
libsqlValueBuilder, libsqlStatementBuilder, libsqlBatchReqStepsBuilder, libsqlBatchReqStepExecCondBuilder, libsqlTransactionBeginStatement,
libsqlValueParser, libsqlStatementResParser, libsqlBatchStreamResParser, libsqlTransactionBatchStreamResParser,
libsqlExecute, //has easier API than `libsql-stateless`'s function of the same name
libsqlBatch, //has easier API than `libsql-stateless`'s function of the same name
libsqlServerCompatCheck, //has easier API than `libsql-stateless`'s function of the same name,
libsqlBatchTransaction, libsqlExecuteMultiple
createClient //used above
} from "libsql-stateless-easy";