#Feature request: Additional Cloudflare workers programming languages

20 messages · Page 1 of 1 (latest)

wanton turtle
#

I would like to use C# and Python to write Cloudflare workers code - are there plans to implement this?

snow token
#

currently no package support though on deployed workers, they're working on that but their eta was 6 months. Working on cold starts

wanton turtle
#

Cool

snow token
#

c# is probably just a bit too fat and slow for workers at the moment

wanton turtle
#

I hope to have support for C# as well

wanton turtle
#

what about if compiled ahead of time?

#

Dotnet 8 AOT

snow token
#

Workers have a max size of 10 MB at the moment, including everything. Hard to fit everything in there. Even with Python WASM embedded in the runtime they're having issues with slow cold starts due. Quite afew issues like how Workers spin up new a lot -- there's no affinity to servers already running the worker. Requests just get routed to any server in the location and spin up the worker if needed, and that Workers run V8 - Chromium's JS Engine and everything in a isolate. Also no matter the language, as long as it's not Javascript, to use Workers you'd need to bind back to the Javascript methods/calls/etc. You don't run web servers in Workers, just handle incoming requests

snow token
wanton turtle
snow token
#

even if you get that to work, and bind back to the javascript side of things/make a nice loader, it's going to be slower then native js by a decent margin thanks to size and such, might as well just use typescript lol

wanton turtle
snow token
wanton turtle
#

damn be the guy that invented javascript 😂

snow token
#

lol to be fair it's pretty good in this context

wanton turtle
snow token
#

Isolates provided by V8 provide a nice fast isolation layer, super fast to spin up and cheap resources wise. Allows Cloudflare to run your worker everywhere, on every metal, in every CF location. There's no Load balancer between the server that handles your request and workers, they're just right there on the receiving server