wasmedge_wasi_socket VS wit-bindgen

Compare wasmedge_wasi_socket vs wit-bindgen and see what are their differences.

wit-bindgen

A language binding generator for WebAssembly interface types (by bytecodealliance)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
wasmedge_wasi_socket wit-bindgen
3 27
70 902
- 5.1%
5.5 9.4
3 months ago about 6 hours ago
Rust Rust
Apache License 2.0 Apache License 2.0
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.

wasmedge_wasi_socket

Posts with mentions or reviews of wasmedge_wasi_socket. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-28.
  • Release: WasmEdge 0.12 and 0.12.1
    10 projects | news.ycombinator.com | 28 May 2023
    https://github.com/WasmEdge/WasmEdge/tree/master/plugins/was...

    A good example of WasmEdge 0.12.1 WASI enhancement is the ability to limit the Wasm app to read-only access to files and folders.

    WasmEdge sockets API is refactored in 0.12.1 to be compatible with the much more limited WASI socket proposal. WasmEdge sockets have become a super set of WASI sockets.

    The WasmEdge networking sockets got new features in version 0.12.1, such as DNS, network device binding and TLS. You will be able to create sophisticated microservices that require highly-efficient non-blocking network sockets. https://github.com/second-state/wasmedge_wasi_socket

    Here are several complex networking applications possible with WasmEdge sockets.

  • Using wasm as a scripting language, is it possible to allow normal, unsandboxed, OS functions?
    2 projects | /r/rust | 9 Feb 2023
    I tested some simple things with wasmer, and it looks pretty good, the problem is that plugins are completly isolated from the world. This might be exactly what other people are searching, but i want the plugins to be able to open a TcpSocket, read a file, or whatever. I'm aware that i could write my own API for that, like this one.
  • Running JavaScript in WebAssembly with WasmEdge
    6 projects | dev.to | 23 Sep 2021
    First, let’s build a WebAssmbly-based JavaScript interpreter program for WasmEdge. It is based on QuickJS with WasmEdge extensions, such as network sockets and Tensorflow inference, incorporated into the interpreter as JavaScript APIs. You will need to install Rust to build the interpreter.

wit-bindgen

Posts with mentions or reviews of wit-bindgen. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-15.
  • Wit-Bindgen
    1 project | news.ycombinator.com | 25 Jan 2024
  • WASM by Example
    16 projects | news.ycombinator.com | 15 Nov 2023
    The component model is already shipping in Wasmtime, and will be stable for use in Node.js and in browsers via jco (https://github.com/bytecodealliance/jco) soon. WASI Preview 2 will be done in December or January, giving component model users a stable set of interfaces to use for scheduling, streams, and higher level functionality like stdio, filesystem, sockets, and http on an opt-in basis. You should look at wit-bindgen (https://github.com/bytecodealliance/wit-bindgen) to see some of the languages currently supported, and more that will be mature enough to use very soon (https://github.com/bytecodealliance/componentize-py)

    Right now jco will automatically generate the JS glue code which implements a Component Model runtime on top of the JS engine's existing WebAssembly implementation. So, yes, Components are a composition of Wasm Modules and JS code is handling passing values from one module/instance to another. You still get the performance benefits of running computation in Wasm.

    One day further down the standardization road, we would like to see Web engines ship a native implementation of the Component Model, which might be able to make certain optimizations that the JS implementation cannot. Until then you can consider jco a polyfill for a native implementation, and it still gives you the power to compose isolated programs written in many languages and run them in many different contexts, including the Web.

    (Disclosure: I am co-chair of WASI, Wasmtime maintainer, implemented many parts of WASI/CM)

  • Spin 2.0 – open-source tool for building and running WASM apps
    13 projects | news.ycombinator.com | 4 Nov 2023
    Thank you!

    To your point, the primary consideration for choosing the languages is their support for WebAssembly, and WASI in particular.

    Due to Spin's heavy use of WASI and the component model, languages that have first party support in the WIT bindings generator (https://github.com/bytecodealliance/wit-bindgen) are the easiest to implement, followed by languages that can be built on top of the support for those with first party support.

    For example, the JavaScript support is built by embedding QuickJS (in particular, Shopify's Javy project — https://github.com/fermyon/spin-js-sdk), which then uses the Rust SDK.

  • Rust + WASM + Typescript [+ React]
    7 projects | /r/rust | 18 Jul 2023
    There are many options, but what worked best for me is compiling with cargo-wasi and loading the resulting Wasm file with browser_wasi_shim. Using wasm32-wasi instead of wasm32-unknown-unknown requires a bit more work (the communication with JS has to be set up manually), but gives the flexibility of having just a Wasm file that can be dropped in and loaded dynamically. (There's wit-bindgen for generating wrapping code according to an interface definition but I didn't have much success with it.)
  • Introducing - Wasmer Runtime 4.0
    3 projects | /r/rust | 22 Jun 2023
    I've been playing with creating a go version of the abi for use with wit-bindgen because the current one uses cgo https://github.com/bytecodealliance/wit-bindgen
  • What in Rust is equivalent to C++ DLLs (shared libraries), or what do I need to do to support extensions in my app?
    7 projects | /r/rust | 21 May 2023
    wit-bindgen - Language Binding Generator for WASM Interface Type
  • Quick tip: Numeromancy, WebAssembly and SingleStoreDB Cloud
    2 projects | dev.to | 24 Feb 2023
    wit-bindgen-rust = { git = "https://github.com/bytecodealliance/wit-bindgen.git", rev = "60e3c5b41e616fee239304d92128e117dd9be0a7" }
  • Using WASM for a plugin system in Rust? (generate code at runtime and then hot reloading it as a library)
    6 projects | /r/rust | 22 Feb 2023
    Yep, you're right. For this, there are a few options. The ones most relevant to you are fp-bindgen, which targets Wasmer, and wit-bindgen, which targets wasmtime.
  • Introducing Ambient 0.1: a runtime for building high-performance multiplayer games and 3D applications, powered by Rust, WebAssembly and WebGPU
    8 projects | /r/rust | 22 Feb 2023
    Are you evaluating if WebAssembly Component Model, its WIT format and related tooling like wit-bindgen could be a good fit for your multiple languages support?
  • Using SingleStoreDB, WebAssembly and GraphQL
    2 projects | dev.to | 15 Feb 2023
    [package] name = "sentiment" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] wit-bindgen-rust = { git = "https://github.com/bytecodealliance/wit-bindgen.git", rev = "60e3c5b41e616fee239304d92128e117dd9be0a7" } vader_sentiment = { git = "https://github.com/ckw017/vader-sentiment-rust" } lazy_static = "1.4.0" [lib] crate-type = ["cdylib"]

What are some alternatives?

When comparing wasmedge_wasi_socket and wit-bindgen you can also consider the following projects:

aws-lambda-wasm-runtime - A template project for building high-performance, portable, and safe serverless functions in AWS Lambda.

lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly

dapr-wasm - A template project to demonstrate how to run WebAssembly functions as sidecar microservices in dapr

spin - Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.

wasmedge-quickjs - A high-performance, secure, extensible, and OCI-complaint JavaScript runtime for WasmEdge.

kwasm - Proof of concept React-ish UI library, powered by WebAssembly

tencent-scf-wasm-runtime - 基于 WebAssembly 容器镜像的高性能腾讯云函数开发模版。A template project for building high-performance, portable, and safe serverless functions in Tencent Serverless Cloud Functions.

webassembly-tour - ⚙️ Take you through a tour of WebAssembly (WASM targets on WASI) with wasmCloud, Krustlet, WAGI, etc. 🌟 Give it a star if you like it.

SSVM - WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.

wasi-experimental-http - Experimental outbound HTTP support for WebAssembly and WASI

wasmedge_hyper_demo - Lightweight HTTP servers based on hyper / warp frameworks in the WasmEdge Runtime.

component-model - Repository for design and specification of the Component Model