Remix.run Logo
dom96 4 days ago

(I work at Cloudflare, but not on D1)

I believe this is possible, you can create D1 databases[1] using Cloudflare's APIs and then deploy a worker using the API as well[2].

1 - https://developers.cloudflare.com/api/resources/d1/subresour...

2 - https://developers.cloudflare.com/api/resources/workers/subr...

wg0 4 days ago | parent | next [-]

Thank you! That's great and it is possible but... With some limitations.

The idea is from sign up form to a D1 Database that can be accessed from the worker itself.

That's not possible without updating worker bindings like you showed and further - there is an upper limit of 5000 bindings per worker and just 5000 users then becomes the upper limit although D1 allows 50,000 databases easily with further possible by requesting a limit increase.

edit: Missed opening.

ewuhic 4 days ago | parent | prev [-]

Hey, would you happen to know if/when D1 can get support for ICU (https://sqlite.org/src/dir/ext/icu) and transactions?

kentonv 4 days ago | parent [-]

Transactions are supported in Durable Objects. In fact, with DO you are interacting with the SQLite database locally and synchronously, so transactions are essentially free with no possibility of conflicts and no worry about blocking other queries.

Extensions are easy to enable, file a bug on https://github.com/cloudflare/workerd . (Though this one might be trickier than most as we might have to do some build engineering.)

ewuhic 4 days ago | parent [-]

Re DO - I am definitely not rewriting my web wasm rust-sqlx app to use DO.

Re filing an issue - sounds straightforward, will do!

kentonv 3 days ago | parent [-]

You can run your wasm app in a DO, same as you run it in a Worker.