6 releases

new 0.3.1 May 5, 2025
0.3.0 May 5, 2025
0.2.0 Sep 24, 2024
0.1.2 Sep 20, 2024

#1027 in WebAssembly

Download history 156/week @ 2025-01-08 33/week @ 2025-01-15 3/week @ 2025-01-22 6/week @ 2025-01-29 67/week @ 2025-02-05 158/week @ 2025-02-19 54/week @ 2025-02-26 9/week @ 2025-03-05 36/week @ 2025-03-12 120/week @ 2025-03-19 20/week @ 2025-03-26 25/week @ 2025-04-02 9/week @ 2025-04-09 8/week @ 2025-04-16 27/week @ 2025-04-23

71 downloads per month
Used in 2 crates

Apache-2.0 WITH LLVM-exception

60KB
1.5K SLoC

What?

Cabish is kind of, sort of like Wasm component model ABI with native endian and pointer size, it's cabi-ish.

How?

Essentially it's just direct implementation of Wasm component model ABI, but alignment and size of values depends on the platform and may not correspond to the spec, for example, alignment of string type will generally be 8 on a 64-bit system as opposed to 4 used by 32-bit Wasm.

Why?

Cabish allows reuse of existing tooling targeting canonical ABI in native code, for example, wadge replaces Go Wasm imports generated by wit-bindgen-go by calls to an embedded Wasmtime instance via Rust FFI in native code and uses cabish to read and write values.

Dependencies

~33–46MB
~851K SLoC