workers-dbms
v0.0.7
Published
Workers Database Management System for Durable Objects
Downloads
24
Maintainers
Readme
workers-dbms
Workers Database Management System for Durable Objects
This project aims to provide a standard interface for "traditional" frameworks that are currently not supported by cloudflare workers to be able to use Durable Objects with SQLite as the backend database!
The main differences from Cloudflare D1 are:
- Websocket support (this really makes a difference when executing dozens of queries sequentially)
- Experimental transactions support
Features
- On demand SQLite databases (like neon.tech)
- https endpoints to manage and query databases
- Websocket endpoint to query databases
- Transactions support in websocket mode!
Supported frameworks
- Django using django-cf
Get started
npm install --save workers-dbms
npm install --save wrangler
Create a index.ts
file with this:
import { generateApp } from "workers-dbms";
export { DBMSDO } from "workers-dbms";
export default generateApp()
Create a wrangler.toml
file with this:
#:schema node_modules/wrangler/config-schema.json
name = "workers-dbms"
main = "index.ts"
compatibility_date = "2024-09-28"
# workers_dev = false # uncomment this for enhanced security !
[[durable_objects.bindings]]
name = "DBSM_DO"
class_name = "DBMSDO"
[[migrations]]
tag = "v1"
new_sqlite_classes = ["DBMSDO"]
Deploy your dbms with wrangler:
wrangler deploy
You can now access your dbms on the worker deployed url
There is also a swagger interface with all the endpoints documented at /api
path.
Images
Home page
Database details
API Documentation with swagger
FAQ
Handshake status 426 Upgrade Required
When using a custom domain for your worker, make sure to enable WebSockets on the domain Network configuration, otherwise you will not be able to use the websocket endpoint!