Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/evan-brass/sqlite.js
Another javascript SQLite wrapper.
https://github.com/evan-brass/sqlite.js
browser deno javascript sqlite webassembly
Last synced: 19 days ago
JSON representation
Another javascript SQLite wrapper.
- Host: GitHub
- URL: https://github.com/evan-brass/sqlite.js
- Owner: evan-brass
- License: mit-0
- Created: 2023-03-01T03:42:27.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2024-05-23T18:28:39.000Z (6 months ago)
- Last Synced: 2024-10-10T19:00:05.010Z (about 1 month ago)
- Topics: browser, deno, javascript, sqlite, webassembly
- Language: JavaScript
- Homepage:
- Size: 7.12 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sqlite.js
Another SQLite wrapper library.Features:
* Incremental Blob IO via Readable / Writable Streams
* Custom VFSs with async implementations
* Coroutines / "multithreading" via Asyncify stack switching.
* Enables cancelling a query: `Conn.prototype.interrupt()`
* Run multiple queries without needing SharedArrayBuffer or Worker
* This library compiles SQLite with multithreading support
* An API with minimal construction / destruction. Prefers 'borrowing' APIs that automatically aquire and release resources.
* `ConnPool.prototype.borrow()`
* Once webbrowsers get disaposable/asyncdisposable, then I might rework the APIs to better reflect the underlying SQLite objects.
* Tagged template literals
* Everything is optional: only include what you need.
* Custom VFSs are optional (if you just want in-memory)
* Custom scalar-functions are optional (if you don't need incremental blob IO, etc.)
* Pool is optional
* Extensible
* Modify how values are bound via the Bindable and Resultable traits in `sql.mjs/value.js`
* Write your own implementation of custom VFS support. Look at `sql.mjs/vfs/custom.js` to learn how.
* Directly call sqlite3 functions via `sql.mjs/sqlite.js` and `sql.mjs/sqlite_def.js`
* Two VFS implementations
* An HTTP VFS that uses HTTP range queries (if supported by the server) to incrementally query a database
* Read-only
* Works in browsers or Deno (uses the fetch api)
* A browser VFS that operates on FileSystemFileHandle's and FileSystemDirectoryHandle's
* Uses a virtual filesystem composed of file handles stored in an indexedDB database