lucet icon indicating copy to clipboard operation
lucet copied to clipboard

Access Lucet from REST/Web Server?

Open nikolqy opened this issue 3 years ago • 1 comments

I apologize if this isn't the place to ask this question and I would ask on StackOverflow, but on SO you either get a really good answer, or a really rude one.

Anyways, I'm new to the serverless technical stuff, but I'm pretty sure I understand the basic concepts. Correct me if I'm wrong, but Lucet is a compiler for lower level code that turns into web assembly code that can run in your browser, AND a runtime for serverless functions written in lower level languages? If Lucet is not a runtime for serverless functions that are written in lower level languages and executed on the backend and accessed through a REST or HTTP request (like AWS Lambda or Cloudflare Workers), can someone please direct me to the software Fastly uses for their functions? (I'm also not 100% sure that Fastly really has this since their site is very vague)

If this is the serverless-like software that can run functions, can someone please tell me how to access them through a rest api?

In the case that I have this all wrong, is anyone aware of the highest performance serverless environment like OpenWhisk, etc. and whether or not there's serverless software that uses all low level code instead of Javascript?

Thank you so much!

nikolqy avatar Mar 26 '21 13:03 nikolqy

Hi!

Lucet requires WebAssembly code as an input. Languages such as Zig, C and Rust can be used to cross-compile an application to WebAssembly.

Lucet can then transform that WebAssembly code into a shared library, to be used with its own runtime. It is not designed to run in a web browser, but on a server.

Most web browsers can directly execute WebAssembly code. No extra runtime needed! However, the set of available tools and APIs is quite different in both contexts.

Lucet is just a runtime. It doesn't expose any REST-like interface nor "server less" features. The provided command-line tool can only synchronously execute a single module, and the underlying library only the runtime, on top of which you should build your own application.

If you are looking for "serverless-like software that can run functions", you may want to take a look at faasm, assemblylift, atmo, or (by far the easiest option to start with) wasm-joey.

jedisct1 avatar Mar 26 '21 20:03 jedisct1