mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-18 17:14:20 +01:00
43 lines
1.3 KiB
Markdown
43 lines
1.3 KiB
Markdown
# Limbo Wasm bindings
|
|
|
|
This source tree contains Limbo Wasm bindings.
|
|
|
|
## Building
|
|
|
|
For nodejs
|
|
```
|
|
./scripts/build
|
|
```
|
|
For web
|
|
|
|
```
|
|
./scripts/build web
|
|
```
|
|
|
|
# Browser Support
|
|
|
|
Adding experimental support for limbo in the browser. This is done by adding support for OPFS as a VFS.
|
|
|
|
To see a basic example of this `npm run dev` and navigate to `http://localhost:5173/limbo-opfs-test.html` and open the console.
|
|
|
|
## Design
|
|
|
|
This design mirrors sqlite's approach for OPFS support. It has a sync api in `opfs.js` which communicates with `opfs-sync-proxy.js` via `SharedArrayBuffer` and `Atomics.wait`. This allows us to live the VFS api in `lib.rs` unchanged.
|
|
|
|
You can see `limbo-opfs-test.html` for basic usage.
|
|
|
|
## UTs
|
|
|
|
There are OPFS specific unit tests and then some basic limbo unit tests. These are run via `npm test` or `npx vitest`.
|
|
|
|
For more info and log output you can run `npx vitest:ui` but you can get some parallel execution of test cases which cause issues.
|
|
|
|
|
|
## TODO
|
|
|
|
-[] Add a wrapper js that provides a clean interface to the `limbo-worker.js`
|
|
-[] Add more tests for opfs.js operations
|
|
-[] Add error return handling
|
|
-[] Make sure posix flags for open are handled instead of just being ignored (this requires creating a mapping of behaviors from posix to opfs as far as makes sense)
|
|
|