Skip to content
This repository has been archived by the owner on Mar 24, 2022. It is now read-only.

Access Lucet from REST/Web Server? #651

Open
nikolqy opened this issue Mar 26, 2021 · 1 comment
Open

Access Lucet from REST/Web Server? #651

nikolqy opened this issue Mar 26, 2021 · 1 comment

Comments

@nikolqy
Copy link

nikolqy commented Mar 26, 2021

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!

@jedisct1
Copy link
Contributor

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants