@polywrap/schema-bind
TypeScript icon, indicating that this package has built-in type declarations

0.12.2 • Public • Published

@polywrap/schema-bind

Bind WRAP ABIs to a variety of supported languages through codegen.

Usage

import { BindOptions, BindOutput, bindSchema } from "@polywrap/schema-bind";
import { parseSchema } from "@polywrap/schema-parse";

const schema = fetch("schema.graphql");
const abi = parseSchema(schema);

const input: BindOptions = {
  projectName: "Test",
  bindLanguage: "wasm-as",
  abi,
  schema,
  outputDirAbs: "/path/to/output/dir"
};

const output: BindOutput = bindSchema(input);

Details

Polywrap uses MessagePack as a common data interchange format between languages. This allows Polywrap WASM modules, authored in different languages, to be run within a single host language (JS, Rust, Python, Go, C#, C++).

MessagePack encoded data is sent between module boundaries. Decoding of the message will happen in the destination environment, using generated binding code, created by this package.

Supported Schema Types

GraphQL Schema Type MessagePack Type Description
UInt uint 32 32-bit unsigned integer.
UInt8 uint 8 8-bit unsigned integer.
UInt16 uint 16 16-bit unsigned integer.
UInt32 uint 32 32-bit unsigned integer.
Int int 32 32-bit signed integer.
Int8 int 8 8-bit signed integer.
Int16 int 16 16-bit signed integer.
Int32 int 32 32-bit signed integer.
String fixstr or str 8/16/32 UTF-8 string.
Boolean bool true or false stored as 1 byte.
Bytes bin 8/16/32 array of 8-bit unsigned integer.
BigInt fixstr or str 8/16/32 UTF-8 string.
BigNumber fixstr or str 8/16/32 UTF-8 string.
JSON fixstr or str 8/16/32 UTF-8 string.
[Type] fixarray or array 16/32 Array of elements.
Map Msgpack extention type Map of key-value pairs.
type CustomObject {
  prop: Type
}
fixmap or map 16/32 Structured object.

Readme

Keywords

none

Package Sidebar

Install

npm i @polywrap/schema-bind

Weekly Downloads

18

Version

0.12.2

License

MIT

Unpacked Size

142 kB

Total Files

107

Last publish

Collaborators

  • polywrap-build-bot
  • dorgjelli