Skip to content

A WebAssembly runtime for TypeScript and JavaScript on ICP

License

Notifications You must be signed in to change notification settings

demergent-labs/azle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Azle (Beta)

TypeScript and JavaScript CDK for the Internet Computer.

Disclaimer

Azle stable mode is continuously subjected to intense scrutiny and testing, however it does not yet have multiple independent security reviews/audits.

Stable Mode

Azle runs in stable mode by default.

This mode is intended for production use after Azle's 1.0 release. Its focus is on API and runtime stability, security, performance, TypeScript and JavaScript language support, the ICP APIs, and Candid remote procedure calls (RPC). There is minimal support for the Node.js standard library, npm ecosystem, and HTTP server functionality.

Experimental Mode

Azle runs in experimental mode through explicitly enabling a flag in dfx.json or certain CLI commands.

This mode is intended for developers who are willing to accept the risk of using an alpha or beta project. Its focus is on quickly enabling new features and functionality without requiring the time and other resources necessary to advance them to the stable mode. The Node.js standard libary, npm ecosystem, and HTTP server functionality are also major areas of focus.

NOTE: Keep clearly in mind that the experimental mode fundamentally changes the Azle Wasm binary. It is not guaranteed to be secure or stable in API changes or runtime behavior. If you enable the experimental mode, even if you only use APIs from the stable mode, you are accepting a higher risk of bugs, errors, crashes, security exploits, breaking API changes, etc.

Get Started

The quickest way to get started is through the hello_world Candid RPC example or the hello_world HTTP Server example.

You can create the hello_world Candid RPC example locally like this:

npx azle new hello_world
cd hello_world

# Now read the README.md

You can create the hello_world HTTP Server example locally like this:

npx azle new hello_world --http-server --experimental
cd hello_world

# Now read the README.md

Documentation

See The Azle Book.

Discussion

Feel free to open issues or join us in the Discord channel.

Contributing

All contributors must agree to and sign the Azle License Extension.

Please reach out before working on anything that is not in the good first issues or help wanted issues. Before beginning work on a contribution, please create or comment on the issue you want to work on and wait for clearance from Demergent Labs.

See Demergent Labs' Coding Guidelines for what to expect during code reviews.

License

Azle's copyright is governed by the LICENSE and LICENSE_EXTENSION.