2 unstable releases

0.1.0 Mar 13, 2024
0.0.0 Mar 13, 2024

#1125 in WebAssembly

MPL-2.0 license

23KB
631 lines

Wasm Interface Object Notation

WION is a data interchange format for WebAssembly. It is designed to be a simple, human-readable, and easy-to-write format that can be used to describe the data types and interfaces of WebAssembly modules.

Type Values
Bools true, false
Number 42, -0, 3.14 , 0xBeef
Strings "abc\t123", 'x', '\u{0}'
Sequence ("abc", 123), [1, 2, 3]
Records {field-a: 1, field-b: "b"}
Options T, some(T), none
Results T, success(T), failure(E)
Variants tag, tag(data), tag { data }
Flags +[read, write], -[execute]

Details

Number

  • integer: 123, -9
  • decimal: 3.14, 6.022e+23
  • byte: 0xBeef, 0b1010_1010

String

  • escaped: \n, \u{0}
  • raw: r"abc\t123"
  • single: 'x'
  • multi: '''abc\n123'''

Dependencies

~0.7–1MB
~18K SLoC