Supported Wasm Languages
Polywrap aims to support many languages for Wasm wrapper development.
A Wasm wrapper can seamlessly interact with any other wrapper, regardless of their implementation languages. This fact leads to many exciting possibilities. For example, Wasm wrappers can be treated as individual modules in a multi-wrapper project. In such a project, each wrapper module could be written in a different language and the other wrappers wouldn't know the difference.
#
DemosLanguage | Hello World | Simple Storage | JSON RPC | Subgraph Query | |
---|---|---|---|---|---|
AssemblyScript | Source | Source | Source | Source | |
Rust | Source | Source | Source | Source | |
TinyGo (Coming Soon) | ... | ... | ... | ... |
#
Choosing a languageThe choice of language(s) for your project may depend on a variety of factors. Here we provide a brief description of each supported language to aid you in your decision.
tip
Each supported wasm development language may have its own quirks when compiling to WebAssembly. Please reference the documentation available for your language of choice.
AssemblyScript#
AssemblyScript is an easy-to-learn language with syntax similar to TypeScript. It is a relatively new language designed for WebAssembly. AssemblyScript is a garbage-collected language, simplifying the developer experience. Due to its newness, it has a comparatively small ecosystem and lacks some features found in more mature languages.
#
Featured Wrappers- Defiwrapper - A cross-chain portfolio aggregator
- Uniswap v3 - A port of the Uniswap v3 SDK
- ENS Wrapper - Interact with ENS
Rust#
Rust is a systems programming language with modern features. In 2021, it was rated the #1 most loved language in StackOverflow's annual Developer Survey for the sixth year in a row. Rust implements a new kind of memory management that eliminates most errors related to memory and concurrency without manual memory allocation or garbage collection.
#
Featured Wrappers- Substrate (Coming Soon) - Interact with Substrate based blockchains