Skip to content

Latest commit

 

History

History

rs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Rust crates

This directory should contain all the replica’s Rust code.

Kicking the tires

Warning: we are still working to clean up the documentation to provide a clean mapping of the rust code.

In the meantime, the least we can do is provide you an easy way to do that very first thing what we would do when encountering repos which look interesting: git clone them and see if they compile locally.

To do that simplest of steps:

  1. install rust

  2. cd rs

  3. cargo build --release --bin replica

Documentation

Best practices

Introducing new System API or changing existing one:

  1. Specify the new API in the Internet Computer Reference repository and consult the canister os team for any help or review needed.

  2. Ensure that the acceptance test suite is updated: hs/spec_compliance and rs/tests/testing_verification/wabt_tests. Inform @team-testing of the work required.

  3. Ensure that the Rust CDK is updated: Rust Canister Development Kit. Inform @eng-sdk of the work required.

  4. Ensure that Motoko is updated: Motoko. Inform @eng-motoko of the work required.

  5. Implement the new API: system_api and embedders crates.

  6. Unit tests: functionality and wasm validation code tests.

  7. Update the implementation of the universal canister and replace universal-canister.wasm with the newly generated one.

  8. Update the interface of the rust canister and add tests.

  9. Add system tests that cover the new API.

  10. Once the Public Spec is released and implementation merged in the master branch, Motoko and Rust CDK can be updated to use the new API. For more details, please contact @eng-motoko and @eng-sdk.