wasi-libc VS WASI

Compare wasi-libc vs WASI and see what are their differences.

wasi-libc

WASI libc implementation for WebAssembly (by WebAssembly)

WASI

WebAssembly System Interface (by WebAssembly)
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
wasi-libc WASI
53 47
876 4,995
1.7% 1.5%
7.9 7.4
about 1 month ago 8 days ago
C Rust
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

wasi-libc

Posts with mentions or reviews of wasi-libc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-11-07.
  • You Are Already Using Wasm In Production
    1 project | dev.to | 9 Dec 2024
    WebAssembly has a set of extended interfaces collectively called the WebAssembly System Interface (WASI). This bit is chugging its way through standardization, due to be finalized in 2025. But if there is one thing we should have collectively learned from the standardization of HTML, CSS, HTTP, JavaScript, and onward, standards-based implementations often stabilize and reach production readiness far sooner than the standards body can walk its lumbering gate to a final ratification. While WASI continues to add new interfaces, the core interfaces (components, file system, environments, and so on) have long been stable, and have long been deployed into production.
  • Hyperlight: Virtual machine-based security for functions at scale
    4 projects | news.ycombinator.com | 7 Nov 2024
  • Sqlite3 WebAssembly
    20 projects | news.ycombinator.com | 15 Oct 2024
    https://wasi.dev/

    wow I didn't know this was a thing. thanks for filling me in!

  • Is the Web Browser the Most Important Platform for App Development?
    6 projects | dev.to | 3 Oct 2024
    Standardization Efforts: Projects like WASI aim to create an ABI standard that facilitates better integration between WebAssembly and the host operating system. However, WASI’s full browser support, especially for web-specific APIs like WebGPU, is still a work in progress.
  • I am curious. How many of you work on a windows system?
    2 projects | /r/developersIndia | 9 Dec 2023
    Now there are projects like WASI that allows for interfacing with system resources for WASM code this allows for devs to target WASM runtime for their apps sliding the apps to run locally on any OS without any porting required. This could be a game changer in the future like Docker and containers was in the past decade.
  • How to select some elements from array randomly?
    2 projects | /r/typst | 7 Dec 2023
    So it doesn’t seem like there has been progress on a pseudo-random number generator function for typst, but there are multiple other ways to solve this: 1. Just don’t. Typst has this functional philosophy, there one input always produces the same output. (not an answer to your question tho) 2. Interface with a webassembly module which has a random number generator. So you could e.g. compile c to wasm and statically link a libc version. You would then just have to export the rand() function. (You could use any lang for this, which has a stdlib with a pseudo random number generator) 3. Implement your own. Random number generators are actually not that hard something like an LCG isn’t to complex. (Id provide an example but im on my phone rn)
  • Lapce Editor v0.3 Released
    9 projects | news.ycombinator.com | 14 Nov 2023
    Actually WASI[0] will be a better alternative, IIRC extism serialize and deserialize the data that you want to pass every time, adding a lot of overhead.

    [0] https://wasi.dev

  • Wasix, the Superset of WASI Supporting Threads, Processes and Sockets
    6 projects | news.ycombinator.com | 30 May 2023
    Actually, it was in wasi-libc: https://github.com/WebAssembly/wasi-libc/blob/main/libc-bott...
  • Valheim: Regarding Mods
    2 projects | /r/Games | 29 May 2023
    Proper isolation in C# is only now becoming a thing, with .Net support for WASI, which is essentially a WebAssembly sandbox which can be given extremely granular privileges (such as access to spefic file system directories, or an effective virtual file system). As an upside, the idea is that it should be possible to write the WASI packages in more or less anything.
  • Hardening Drupal with WebAssembly
    3 projects | news.ycombinator.com | 29 May 2023
    Wasm Labs dev here :)

    In mod_wasm, there are some differences with a pure CGI implementation. When Apache boots, it loads the configuration and initializes the WasmVM. When a new HTTP request arrives, the VM is ready so you don't need to initialize a different process to manage it.

    You still need to process the request and pass the data to the Wasm module. This step is done via STDIN through the WebAssembly System Interface (WASI) implementation [0]. The same happens in the opposite direction, as the module returns the data via STDOUT.

    So, the CGI pattern is still there, but it doesn't require new processes and all the code runs in a sandbox.

    However this is not the only way you can run a Wasm module. In this specific case, we use CGI via WASI. In other cases, you may compile a module to fulfill a specific API, like ProxyWasm [1] to create HTTP filters for proxies like Envoy.

    - [0] https://wasi.dev/

    - [1] https://github.com/proxy-wasm/spec

WASI

Posts with mentions or reviews of WASI. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-11-20.
  • Ask HN: What are some unpopular opinions you got?
    3 projects | news.ycombinator.com | 20 Nov 2024
    Eventually by using the component model which will expose the DOM API. It will get to direct wasm to WebIDL calls one day:

    https://github.com/WebAssembly/component-model

    The component model is being used for the WebAssembly System Interface (WASI):

    https://github.com/WebAssembly/WASI/tree/main

    In the meantime you can use JavaScript glue code auto-generated by your toolchain to access the DOM. This will be made better with builtins like the js-string-builtins proposal:

    https://github.com/WebAssembly/js-string-builtins/blob/main/...

    You can call JavaScript functions and DOM methods from wasm like this example from Hoot, which is a Scheme to wasm compiler:

    https://spritely.institute/news/building-interactive-web-pag...

  • Introducing Spin 3.0
    11 projects | dev.to | 12 Nov 2024
    And a special thank you to everyone who has been contributing and continues contribute to the WebAssembly ecosystem particularly to the maintainers of the Bytecode Alliance projects, the Wasmtime project and the developers working on WASI and the WebAssembly component model. Their work is instrumental in supporting Spin.
  • WASI 0.2.0 and Why It Matters
    8 projects | news.ycombinator.com | 26 Jan 2024
    WASI Co-chair here. Nothing in WASI is "somehow blocked by Google", or indeed blocked by anyone at all. Graphics support in WASI hasn't been developed simply because nobody has put energy into developing graphics support in WASI.

    At the end of 2023 we counted around 40 contributors who have been working on WASI specifications and implementations: https://github.com/WebAssembly/meetings/blob/main/wasi/2023/... . That is a great growth for our project from a few years ago when that issue was filed, but as you can see from what people are working on, its all much more foundational pieces than a graphics interface. Also, if you look at who is employing those contributors, its largely vendors who are interested in WASI in the context of serverless. That doesn't mean WASI is limited to only serverless, but that has been the focus from contributors so far.

    By rolling out WASI on top of the WASM Component Model we have built a sound foundation for creating WASI proposals that support more problem domains, such as embedded systems (@mc_woods and his colleagues are helping with this), or graphics if someone is interested in putting in the work. Our guide to how to create proposals is found here: https://github.com/WebAssembly/WASI/blob/main/Contributing.m... .

  • WASI Launching Preview 2
    1 project | news.ycombinator.com | 25 Jan 2024
  • Missing the Point of WebAssembly
    2 projects | news.ycombinator.com | 9 Jan 2024
    > As I understand it, it's not even really possible today to make WebAssembly do anything meaningful in the browser without trampolining back out to JavaScript anyway, which seems like a remarkable missed opportunity.

    That's the underlying messy API it's built on. There are specs to make the API more standardized like https://github.com/WebAssembly/WASI

    But overall, yeah, it feels like a shiny new toy everyone is excited about and wants to use. Some toys can be fun to play with, but it doesn't mean we have to rewrite production systems in it. Sometimes, or most of the time, toys don't become useful tools.

  • Running WASI binaries from your HTML using Web Components
    4 projects | news.ycombinator.com | 28 Aug 2023
    Snapshot Preview 1 is the standard all tools are building to right now. The specification is available here: https://github.com/WebAssembly/WASI/blob/main/legacy/preview...

    It's pretty unreadable though!

    Preview 2 looks like it will be a big change, and is just being finalised at the moment. I'd expect that when preview 2 is available there will be an improvement in the quality of documentation. I'm not sure how long it will take after release for tools to start switching to it. I'd expect Preview 1 will still be the main target at least for the rest of this year.

  • WASI: WebAssembly System Interface
    1 project | /r/hackernews | 7 Aug 2023
    1 project | /r/hypeurls | 7 Aug 2023
    6 projects | news.ycombinator.com | 5 Aug 2023
    > Like WTF does this mean? The repo tells me nothing

    Directly above the sentence you quoted:

    "Interposition in the context of WASI interfaces is the ability for a Webassembly instance to implement a given WASI interface, and for a consumer WebAssembly instance to be able to use this implementation transparently. This can be used to adapt or attenuate the functionality of a WASI API without changing the code using it."

    > and I've still yet to see a clear write-up about what WASI is.

    In the same document: [0]

    > WTF is wit?

    The first link in that document ("Starting in Preview2, WASI APIs are defined using the Wit IDL.") is [1].

    > I click on "legacy" and I see preview0 and preview1, which are basically unreadable proto-specs.

    The README for the legacy directory [2] clearly explains what they are.

    > Where's a single well-written WASI spec?

    "Development of each API happens in its own repo, which you can access from the proposals list." [3]

    > Whatever WASI is doing, I don't like it.

    Clearly not - you've gone out of your way to ignore all of the documentation that answers your questions.

    > And neither does AssemblyScript team apparently

    The AssemblyScript team have a bone to pick with WASI based on their misunderstanding of what WASI is for (it is not intended for use on the web) and WASI's disinterest in supporting UTF-16 strings. You can see for yourself in [4].

    [0]: https://github.com/WebAssembly/WASI/tree/main#wasi-high-leve...

  • A Gentle Introduction to WebAssembly
    1 project | dev.to | 3 May 2023
    The Bytecode Alliance initiated a sub-project called the WebAssembly System Interface (WASI). WASI is an API that allows WebAssembly access to system features such as files, filesystems, Berkeley sockets, clocks, and random numbers. WASI acts as a system-level interface for WebAssembly, so incorporating a runtime into a host environment and building a platform is easier.

What are some alternatives?

When comparing wasi-libc and WASI you can also consider the following projects:

wasm-bindgen - Facilitating high-level interactions between Wasm modules and JavaScript

extism - The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.

wasi-sdk - WASI-enabled WebAssembly C/C++ toolchain

gpuweb - Where the GPU for the Web work happens!

wasm-fizzbuzz - WebAssembly from Scratch: From FizzBuzz to DooM.

.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

binaryen - Optimizer and compiler/toolchain library for WebAssembly

threads - Threads and Atomics in WebAssembly

wasmer - 🚀 Fast, secure, lightweight containers based on WebAssembly

wasm-micro-runtime - WebAssembly Micro Runtime (WAMR)

wee_alloc - The Wasm-Enabled, Elfin Allocator

node-sqlite3 - SQLite3 bindings for Node.js

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured

Did you know that C is
the 6th most popular programming language
based on number of references?