enarx / codex

Code examples that can be compiled to WebAssembly for use with Enarx
Apache License 2.0
22 stars 14 forks source link

build(nix): add build tooling #6

Closed rvolosatovs closed 2 years ago

rvolosatovs commented 2 years ago

This includes build tooling and CI for Rust fibonacci and MIO TCP server examples

Quick demo: https://asciinema.org/a/q29nU1uj1fApfis312GhLXI9p

Example usage:

$ nix build .#fibonacci-rust
$ ls ./result
Enarx.toml  main.wasm

nix flake show:

├───devShells
│   ├───aarch64-darwin
│   │   └───default: development environment 'nix-shell'
│   ├───aarch64-linux
│   │   └───default: development environment 'nix-shell'
│   ├───x86_64-darwin
│   │   └───default: development environment 'nix-shell'
│   └───x86_64-linux
│       └───default: development environment 'nix-shell'
├───formatter
│   ├───aarch64-darwin: package 'alejandra-1.4.0'
│   ├───aarch64-linux: package 'alejandra-1.4.0'
│   ├───x86_64-darwin: package 'alejandra-1.4.0'
│   └───x86_64-linux: package 'alejandra-1.4.0'
├───overlays
│   ├───codex: Nixpkgs overlay
│   ├───credentialHelpers: Nixpkgs overlay
│   └───default: Nixpkgs overlay
└───packages
    ├───aarch64-darwin
    │   ├───cryptle-rust: package 'cryptle-0.1.0'
    │   ├───cryptle-rust-wasm: package 'cryptle-0.1.0'
    │   ├───echo-tcp-rust-mio: package 'mio-echo-tcp-0.1.0'
    │   ├───echo-tcp-rust-mio-wasm: package 'mio-echo-tcp-0.1.0'
    │   ├───enarx-credential-helper-gopass: package 'enarx-credential-helper-gopass'
    │   ├───enarx-credential-helper-pass: package 'enarx-credential-helper-pass'
    │   ├───fibonacci-rust: package 'fibonacci-0.1.0'
    │   ├───fibonacci-rust-wasm: package 'fibonacci-0.1.0'
    │   ├───http-rust-tokio: package 'tokio-http-0.0.1'
    │   └───http-rust-tokio-wasm: package 'tokio-http-0.0.1'
    ├───aarch64-linux
    │   ├───cryptle-rust: package 'cryptle-0.1.0'
    │   ├───cryptle-rust-wasm: package 'cryptle-0.1.0'
    │   ├───echo-tcp-rust-mio: package 'mio-echo-tcp-0.1.0'
    │   ├───echo-tcp-rust-mio-wasm: package 'mio-echo-tcp-0.1.0'
    │   ├───enarx-credential-helper-gopass: package 'enarx-credential-helper-gopass'
    │   ├───enarx-credential-helper-pass: package 'enarx-credential-helper-pass'
    │   ├───fibonacci-rust: package 'fibonacci-0.1.0'
    │   ├───fibonacci-rust-wasm: package 'fibonacci-0.1.0'
    │   ├───http-rust-tokio: package 'tokio-http-0.0.1'
    │   └───http-rust-tokio-wasm: package 'tokio-http-0.0.1'
    ├───x86_64-darwin
    │   ├───cryptle-rust: package 'cryptle-0.1.0'
    │   ├───cryptle-rust-wasm: package 'cryptle-0.1.0'
    │   ├───echo-tcp-rust-mio: package 'mio-echo-tcp-0.1.0'
    │   ├───echo-tcp-rust-mio-wasm: package 'mio-echo-tcp-0.1.0'
    │   ├───enarx-credential-helper-gopass: package 'enarx-credential-helper-gopass'
    │   ├───enarx-credential-helper-pass: package 'enarx-credential-helper-pass'
    │   ├───fibonacci-rust: package 'fibonacci-0.1.0'
    │   ├───fibonacci-rust-wasm: package 'fibonacci-0.1.0'
    │   ├───http-rust-tokio: package 'tokio-http-0.0.1'
    │   └───http-rust-tokio-wasm: package 'tokio-http-0.0.1'
    └───x86_64-linux
        ├───cryptle-rust: package 'cryptle-0.1.0'
        ├───cryptle-rust-wasm: package 'cryptle-0.1.0'
        ├───echo-tcp-rust-mio: package 'mio-echo-tcp-0.1.0'
        ├───echo-tcp-rust-mio-wasm: package 'mio-echo-tcp-0.1.0'
        ├───enarx-credential-helper-gopass: package 'enarx-credential-helper-gopass'
        ├───enarx-credential-helper-pass: package 'enarx-credential-helper-pass'
        ├───fibonacci-rust: package 'fibonacci-0.1.0'
        ├───fibonacci-rust-wasm: package 'fibonacci-0.1.0'
        ├───http-rust-tokio: package 'tokio-http-0.0.1'
        └───http-rust-tokio-wasm: package 'tokio-http-0.0.1'
rvolosatovs commented 2 years ago

Cryptle is blocked by https://github.com/enarx/cryptle/pull/10