[HN Gopher] Show HN: Faasta - A self-hosted Serverless platform ...
       ___________________________________________________________________
        
       Show HN: Faasta - A self-hosted Serverless platform for WASM-wasi-
       HTTP in Rust
        
       I've just released an early version off my project I've been
       working on for a few months now and would love some feedback.
       https://github.com/fourlexboehm/faasta  I was surprised there isn't
       yet an open/source and standards compliant way to host wasi-http
       functions in a way that takes advantages of WASM, a multi tenanted
       application.  If you're not familiar with wasi, Compared to
       something like AWS Lambda, this approach is much more efficient as
       a single process can serve 1000s of function invocations
       concurrently and asynchronously, instead requiring an entire VM.
       This is still early days for the project, but feel free to download
       the cli utility with cargo install cargo-faasta.  Feel free to test
       deploying functions on my hosted instance at
       https://website.faasta.xyz.  The service is free to use and
       currently supports deployments via GitHub OAuth, with a limit of 10
       functions per GitHub account.
        
       Author : alexboehm
       Score  : 84 points
       Date   : 2025-04-25 00:31 UTC (22 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | mrmagoo17 wrote:
       | That's a really cool implementation! I hope I'll have some time
       | soon to have a peek at the code. I am honestly a bit surprised to
       | see that none of the major cloud providers are even thinking to
       | leverage WASM and WASI for serverless...
        
         | alexboehm wrote:
         | After delving into this, it seems Wasmer tried, but as they
         | weren't standards compliant, adoption/ecosystem support never
         | followed.
         | 
         | The Bytecode alliance is taking their time stabilizing wasi.
         | wasip2 which is needed for the wasi-http realm this relies on
         | has only really existed for a few months as a stable Rust
         | target, and still misses a lot of the really cool features that
         | will come with wasip3 like full async support.
         | 
         | I suspect Cloud providers will adopt wasi after 1.0, but that
         | is likely years away. I don't think wasi-http will change much
         | before then so now is the time to start building with it.
        
           | sshine wrote:
           | So happy to see wasi-http become stable.
        
           | syrusakbary wrote:
           | > After delving into this, it seems Wasmer tried, but as they
           | weren't standards compliant, adoption/ecosystem support never
           | followed.
           | 
           | You may be surprised by how much WASIX is being adopted by
           | the ecosystem! Aiming it to be full POSIX compliant has
           | proven incredibly powerful, as there's no need for waiting
           | for other entities to reinvent what already works in the
           | POSIX (macOS, Linux, ...) :)
        
             | alexboehm wrote:
             | I'm not discounting WASIX or what you guys are doing I'd
             | love to just use wasm today for everything instead of
             | waiting, I started this project by trying to use WASIX, I
             | just found it quite difficult to actually develop for as
             | many of the essential rust crates, seemed reluctant to
             | merge your changes, and having to use dependency versions
             | from a year ago with patches is very frustrating.
        
               | syrusakbary wrote:
               | Fair! We have already plans to solve the patching issue
               | you commented... stay tuned!
        
         | ebcase wrote:
         | Check out Fastly's WASM-powered Compute platform:
         | 
         | https://www.fastly.com/documentation/guides/compute/
         | 
         | (I work there)
        
           | alexboehm wrote:
           | I have been playing with it, it's very cool to be able to run
           | anywhere. Do you have plans to implement wasi-http? One of my
           | concerns is the free tier only offers Compute as a trial, and
           | $50 is pretty steep for a hobby project, are there plans to
           | add Compute usage to the free tier?
        
         | Imustaskforhelp wrote:
         | Cloudflare workers can do wasm and js.
         | 
         | I haven't tried with wasm personally because well, it has a
         | limit of 25 mb and I am not sure but last time I read somewhere
         | in their forums about some guy wishing to run golang, it had
         | the issue that wasm could only be 1-2mb and golang's most basic
         | example had it taken 1-2mb so they can't cook anything good.
         | 
         | Of course I can be wrong & I am just too lazy to search that
         | article to remember the facts again.
        
           | Imustaskforhelp wrote:
           | Cloudflare is literally magic with typescript. I swear,
           | people like to give me that cloudflare example of gambling
           | and show the time where their sales team messed up so hard
           | but If we read that article, I think I can agree with
           | Cloudflare because they were a gambling site... my gripe is
           | that cloudflare could've been more professional, but hey
           | mistakes happen , I genuinely hope that Cloudflare has moved
           | on, Since if I ever create any website, any service whatever,
           | Its most likely going to be on Cloudflare and I just hope
           | that I don't get messed up like that guy.
           | 
           | And also one key thing to note is you should probably not
           | keep the domain itself in cloudflare if you are thaat
           | paranoid and write something in hono if you really want
           | portability (maybe its overkill??) and if you really get
           | messed up like the gambling blog guy then you can easily
           | switch away...
           | 
           | Still ITS way too unlikely to happen I guess.
        
         | phickey wrote:
         | Azure has shipped Spin as an experiment
         | https://learn.microsoft.com/en-us/azure/aks/use-wasi-node-po...
         | and is investing in Wasmtime and WASI
         | https://opensource.microsoft.com/blog/2025/03/26/hyperlight-...
         | (One author, Yosh, is the co-chair of WASI standards subgroup)
         | 
         | This platform is also based on wasmtime and wasmtime's wasi-
         | http implementation, which I authored, so I'm really proud to
         | see it reused here!
         | 
         | One more plug: I've been working on
         | https://github.com/yoshuawuyts/wstd/ with Yosh and Dan Gohman
         | (creator of WASI) as a nice way to write wasi-http guests in
         | Rust.
        
         | sitkack wrote:
         | They don't want to kill their Golden Geese.
        
       | badmonster wrote:
       | Do you plan to support custom domains and SSL certificates for
       | self-hosted Faasta deployments, or will that be handled
       | externally via reverse proxies?
        
         | alexboehm wrote:
         | For self hosted, if you use porkbun for DNS it will
         | automatically pull a wildcard SSL cert using the API at
         | startup.
         | 
         | I plan to also support multiple custom domain certs on a multi
         | tenanted instance like faasta.xyz. For now I'd recommend a
         | reverse proxy though.
        
           | badmonster wrote:
           | gotcha
        
       | foresterre wrote:
       | Since there is no LICENSE in the repo, I assume this will not be
       | an open source project? Will it have an open core or similar
       | license?
        
         | alexboehm wrote:
         | The plan is for it to be an opensource project, currently the
         | cli and interface crates are MIT, I have been considering a
         | copyleft license for the server, or a dual licensing strategy.
        
       | singularity2001 wrote:
       | You could link to faasta.xyz in github about and add EXAMPLES
       | there.
       | 
       | The lambdas should be able to be accessible via http(s) e.g.
       | 
       | https://square.faasta.xyz/3 => 9
       | 
       | https://faasta.xyz/square/3 => 9
       | 
       | Great idea if done right!
        
         | alexboehm wrote:
         | Thanks for the feedback, I've added the URL to about, I
         | originally supported path prefix and subdomains, but I found it
         | slightly more confusing to communicate to users. I'm definitely
         | planning on more example.
        
           | singularity2001 wrote:
           | > I originally supported path prefix and subdomains
           | 
           | please bring them back!
        
       | kaliqt wrote:
       | Bun likely has a larger footprint than this but it's also gaining
       | lots of traction: https://bun.sh/docs/runtime/loaders
       | 
       | How might this project differentiate itself from Bun as it grows?
       | Because Bun aims to be compact and fast (fast being the priority
       | in their case).
        
         | Imustaskforhelp wrote:
         | As someone who uses bun,deno & cloudflare workers, I want to
         | say that atleast in bun, the wasm part actually happens itself
         | in js and bun just runs that js using javascriptcore which is
         | definitely not optimized as it is stated by Bun docs themselves
         | (https://bun.sh/docs/runtime/loaders#wasi)
         | 
         | Also I am still not sure how you are thinking that this project
         | is similar to Bun.
         | 
         | Bun is for javascript, somebody runs wasm in js and that on
         | bun...
         | 
         | Faasta runs wasm directly and you would need to use javy to
         | actually run js in Faasta
         | https://github.com/bytecodealliance/javy
         | 
         | Its sort of like a->b or b->a and faasta is way more leaner and
         | better... Though bun is good if you are all Typescript.
         | 
         | Still I am sure I am not able to explain myself clearly, so do
         | ask me something if you think I haven't explained quite
         | properly and I am obviously sorry about that!
         | 
         | (Side note: but my main gripe with deno is that I have to
         | specify all of these permissions and its still not a 1:1
         | equivalent to nodejs , like its very close still though so I
         | still used bun and I actually used just today bun to install
         | pnpm and then install wrangler and then remove pnpm and install
         | via bun because for some reason wrangler doesn't recognize bun
         | as package manager but whatever right)
        
         | drewbitt wrote:
         | That this is like Bun is a stretch. This runs anything directly
         | that can compile to WASI P2. Bun polyfills wasi-js to run WASI
         | P1 inside JS.
        
       | xkcd-sucks wrote:
       | Unfortunate name collision with FASTA the bioinformatic sequence
       | file format
        
         | digikata wrote:
         | Could perhaps be fixed by adding a "R" for rust at the end:
         | Faastar
        
       ___________________________________________________________________
       (page generated 2025-04-25 23:02 UTC)