Skip to content

0.25.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 09 Jan 23:37
· 7 commits to main since this release
d23530a

This release focuses on many tasks in preparation for Azle's release candidate to 1.0. We expect version 0.25.0 to be the last before the release candidate.

Azle 0.25.0 greatly improves our confidence in the stability and security of Azle's stable mode. We have integrated rquickjs as our Rust bindings to QuickJS in stable mode. Experimental mode and stable mode are now two entirely separate binaries.

We have greatly improved our automated testing and dependency update processes. We have automatically generated the IDL and TypeScript types for Azle's automatically-included canisters, such as the management canister, ICP ledger, and ICRC canisters.

Benchmarks have been introduced to give developers a feel for Azle's instruction usage and cycle and USD costs.

Azle in stable mode has now been subjected to fuzz testing, uncovering a major memory leak and already borrowed error. These issues have been fixed in Azle stable and experimental modes.

Azle's stable mode is now more battle-tested than ever before, and we are becoming more and more confident in Azle's stability and security.

Features

stable/experimental binary bifurcation (rquickjs)

Fuzz tests with cuzz

Beautiful errors for stable

cyclesBurn

Automatically-generated IDL and TypeScript types

Benchmarks

Tests for stable APIs in experimental mode

Various new property tests for ICP APIs

Massive improvements to testing framework/github actions

Dependabot automatic dependency updates

Nicer decorator syntax for empty signatures

Double canister method registration issues fixed

Major memory leak fix

Already borrowed fix

Breaking Changes

  • payment is now called cycles
  • management canister, icrc, icp have new IDL and TypeScript types
  • dataCertificate return type changed
  • StableBTreeMap is now a class and must be instantiated with new
  • candidCompiler has been entirely removed from stable
  • empty toBytes and fromBytes have been removed
  • You must now use .raw even locally for http server canisters as of dfx 0.24.1
  • The only supported http methods are POST, GET, HEAD, PUT, and DELETE
  • If you relied on decorators registering methods in multiple classes or files, that now doesn't work. You must only register methods in the exported class
  • Some new fields have been added to the management canister ic.did, so some cross canister calls might fail without those updated properties being provided values at runtime
  • instruction counter has been removed

What's Changed

New Contributors

Full Changelog: 0.24.1...0.25.0