diff --git a/.circleci/config.yml b/.circleci/config.yml index dd81579f..ba3c478a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,10 +20,10 @@ jobs: rustup component add rustfmt rustup component add clippy - cargo install --force fcli + cargo install --force marine # build a Wasm binary for interpreter - (cd air-interpreter; fce build --features fce) + (cd air-interpreter; marine build --features marine) # build Wasm binaries for tests (cd air/tests/; ./build_test_binaries.sh) diff --git a/.github/workflows/air_tag_release.yml b/.github/workflows/air_tag_release.yml index 21910050..36826ed0 100644 --- a/.github/workflows/air_tag_release.yml +++ b/.github/workflows/air_tag_release.yml @@ -22,12 +22,12 @@ jobs: profile: minimal override: true - - name: Install fcli + - name: Install marine uses: actions-rs/cargo@v1 with: toolchain: nightly command: install - args: fcli + args: marine ### Update & build - uses: actions-rs/cargo@v1 @@ -35,10 +35,10 @@ jobs: toolchain: nightly command: update - - name: fce build --release + - name: marine build --release working-directory: ./air-interpreter shell: bash - run: fce build --release --features fce + run: marine build --release --features marine ### Create release - uses: marvinpinto/action-automatic-releases@latest diff --git a/.github/workflows/publish_interpreter.yml b/.github/workflows/publish_interpreter.yml index 42453b34..60af4178 100644 --- a/.github/workflows/publish_interpreter.yml +++ b/.github/workflows/publish_interpreter.yml @@ -126,8 +126,8 @@ jobs: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} ### === Rust package release === - - name: Install fcli - run: cargo install fcli || true + - name: Install marine + run: cargo install marine || true - name: Set interpreter version to ${{ env.FINAL_VERSION }} before the build run: | @@ -142,7 +142,7 @@ jobs: ) - name: Build air_interpreter_server.wasm for node - run: fce build --release -p air-interpreter --features fce + run: marine build --release -p air-interpreter --features marine working-directory: interpreter - name: Copy air_interpreter_server.wasm to air-interpreter-wasm diff --git a/.github/workflows/publish_interpreter_dev.yml b/.github/workflows/publish_interpreter_dev.yml index 66f5796b..fa3880de 100644 --- a/.github/workflows/publish_interpreter_dev.yml +++ b/.github/workflows/publish_interpreter_dev.yml @@ -149,8 +149,8 @@ jobs: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} ### === Rust package release === - - name: Install fcli - run: cargo install fcli || true + - name: Install marine + run: cargo install marine || true - name: Set interpreter version to ${{ env.FINAL_VERSION }} before the build run: | @@ -159,7 +159,7 @@ jobs: working-directory: air - name: Build air_interpreter_server.wasm for node - run: fce build -p air-interpreter --release --features fce + run: marine build -p air-interpreter --release --features marine working-directory: air-interpreter - name: Copy air_interpreter_server.wasm to air-interpreter-wasm diff --git a/Cargo.lock b/Cargo.lock index b6939005..154b03eb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -646,112 +646,6 @@ dependencies = [ "libc", ] -[[package]] -name = "fce" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a299c6632701564a91d59b9ac6f2e2db6a7a36be33347de60ba7f97309e2e4cd" -dependencies = [ - "anyhow", - "boolinator", - "fce-module-info-parser", - "fce-utils", - "fce-wit-generator", - "fce-wit-interfaces", - "fce-wit-parser", - "it-lilo", - "log", - "multimap", - "once_cell", - "parity-wasm", - "paste", - "pwasm-utils", - "semver 0.11.0", - "serde", - "thiserror", - "wasmer-interface-types-fl", - "wasmer-runtime-core-fl", - "wasmer-runtime-fl", - "wasmer-wasi-fl", -] - -[[package]] -name = "fce-module-info-parser" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f12b63bf1e17b7eab7afefd6b9f60e61c36ab8030d7310a0b4a7b0f46a0a90d" -dependencies = [ - "anyhow", - "chrono", - "fluence-sdk-main", - "semver 0.11.0", - "serde", - "thiserror", - "walrus", - "wasmer-runtime-core-fl", -] - -[[package]] -name = "fce-timestamp-macro" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c59a6302902583b2c84e87de9d72b949da4396a369baf0aaa49e97021600bb0" -dependencies = [ - "chrono", - "quote", -] - -[[package]] -name = "fce-utils" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922798711870c4f492d30aa8323d8883b72d874e9b108299391fa5f080527109" - -[[package]] -name = "fce-wit-generator" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ce2865ec46e691b17af91c4ad980771ad59572ff9ef730b5779e33e7df25dc" -dependencies = [ - "cargo_toml", - "fce-wit-parser", - "fluence-sdk-wit", - "it-lilo", - "once_cell", - "serde", - "serde_json", - "thiserror", - "walrus", - "wasmer-interface-types-fl", -] - -[[package]] -name = "fce-wit-interfaces" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc40ae6a1afddd132c7d31ad003b57457573c9a434e1c1163537b42cf7d879c1" -dependencies = [ - "multimap", - "wasmer-interface-types-fl", -] - -[[package]] -name = "fce-wit-parser" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e487ac779cbb5f05c0e658dd0f3091d82cb03f25769ae63652e328bf2193072" -dependencies = [ - "anyhow", - "fce-wit-interfaces", - "nom", - "semver 0.11.0", - "serde", - "thiserror", - "walrus", - "wasmer-interface-types-fl", - "wasmer-runtime-core-fl", -] - [[package]] name = "fixedbitset" version = "0.2.0" @@ -760,21 +654,21 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] name = "fluence" -version = "0.6.2" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b731bd4a69a3945186f2ff96ff753908939c8a2debd60e1f0e8edb6a28757f8" +checksum = "bd1f159a4da6aef89e8e4a0bf061a8031d669d03d9928266942581a52df03f56" dependencies = [ - "fce-timestamp-macro", - "fluence-sdk-macro", "fluence-sdk-main", + "marine-macro", + "marine-timestamp-macro", "serde", ] [[package]] name = "fluence-app-service" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07f30832e91e2a645ab4f97c96e07035929c8b0ecf465f6a00d3cebaad17aa1f" +checksum = "ba3b1d2c199d6bc140c9ec5ffa323ebd34ac134fb37828bbfd7aeed0339cab78" dependencies = [ "fluence-faas", "log", @@ -788,17 +682,17 @@ dependencies = [ [[package]] name = "fluence-faas" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84f0a3eeaa93ae52e91fbbca20d7cf4e58e0e8b2126e9da2fce763ecc5270a3" +checksum = "9421599c5540e50f3854a0a48702c31408ac1cfb06314fe391792daa3a9d800b" dependencies = [ "cmd_lib", - "fce", - "fce-utils", "fluence", "fluence-sdk-main", "itertools 0.9.0", "log", + "marine-runtime", + "marine-utils", "safe-transmute", "serde", "serde_derive", @@ -823,23 +717,14 @@ dependencies = [ "wast", ] -[[package]] -name = "fluence-sdk-macro" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb43d2f51f1becb70e2125ef8ca9759597900f95cc22ce7dca981a7d6ccd7dde" -dependencies = [ - "fluence-sdk-wit", -] - [[package]] name = "fluence-sdk-main" -version = "0.6.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78910d85e3cdcb9c2baf56144f20a99925c67ac445d4156220c005bfd2f9604" +checksum = "b3a5d1ca20ada064379d959a9a82f9c006e4d9388533cf06010186fef6dd583b" dependencies = [ - "fluence-sdk-macro", "log", + "marine-macro", "serde", ] @@ -1210,6 +1095,135 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +[[package]] +name = "marine-it-generator" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245d4971ee68559236cdd34e6d57ae769dab68c6c9ed4d390f14ae5830880c8f" +dependencies = [ + "cargo_toml", + "fluence-sdk-wit", + "it-lilo", + "marine-it-parser", + "once_cell", + "serde", + "serde_json", + "thiserror", + "walrus", + "wasmer-interface-types-fl", +] + +[[package]] +name = "marine-it-interfaces" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c533789e72808630cc35b5d14d286382236282525f82ddce8fb47eb9d659e8" +dependencies = [ + "multimap", + "wasmer-interface-types-fl", +] + +[[package]] +name = "marine-it-parser" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e59c7067a18b9e4aebe67bee033638fae97d6fe4fb00f70f9a509eb5d03d1c5d" +dependencies = [ + "anyhow", + "marine-it-interfaces", + "nom", + "semver 0.11.0", + "serde", + "thiserror", + "walrus", + "wasmer-interface-types-fl", + "wasmer-runtime-core-fl", +] + +[[package]] +name = "marine-macro" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c1652b6ac1bbdde9a66c16c8a2f9cd34d005a1f1b211a538c5b28764faa6ef4" +dependencies = [ + "marine-macro-impl", +] + +[[package]] +name = "marine-macro-impl" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80fee75eaf1a97ee9fe2d382c0537c06a79e5d7ab9d81bda6cb263fb8fd1a15a" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn", + "uuid", +] + +[[package]] +name = "marine-module-info-parser" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003017e314cebb5c774569a4257f5eca82106cff170b124c6712f2fcd3ceefef" +dependencies = [ + "anyhow", + "chrono", + "fluence-sdk-main", + "semver 0.11.0", + "serde", + "thiserror", + "walrus", + "wasmer-runtime-core-fl", +] + +[[package]] +name = "marine-runtime" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8722580724555bf87a1128780f7dd3f700bbc6add690d1efe7e7fc736edf1a1" +dependencies = [ + "anyhow", + "boolinator", + "it-lilo", + "log", + "marine-it-generator", + "marine-it-interfaces", + "marine-it-parser", + "marine-module-info-parser", + "marine-utils", + "multimap", + "once_cell", + "parity-wasm", + "paste", + "pwasm-utils", + "semver 0.11.0", + "serde", + "thiserror", + "wasmer-interface-types-fl", + "wasmer-runtime-core-fl", + "wasmer-runtime-fl", + "wasmer-wasi-fl", +] + +[[package]] +name = "marine-timestamp-macro" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6feb612ccd3fd39ec3d50c9a1a96885e1fd32d36a92cf674a0fbe6f7c452613" +dependencies = [ + "chrono", + "quote", +] + +[[package]] +name = "marine-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc5838acba84ce4d802d672afd0814fae0ae7098021ae5b06d975e70d09f812" + [[package]] name = "memchr" version = "2.4.0" @@ -1588,9 +1602,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce5f1ceb7f74abbce32601642fcf8e8508a8a8991e0621c7d750295b9095702b" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ "aho-corasick", "memchr", diff --git a/air-interpreter/Cargo.toml b/air-interpreter/Cargo.toml index 4a246265..b311788c 100644 --- a/air-interpreter/Cargo.toml +++ b/air-interpreter/Cargo.toml @@ -11,12 +11,12 @@ path = "src/wasm_bindgen.rs" [[bin]] name = "air_interpreter_server" -path = "src/fce.rs" +path = "src/marine.rs" [dependencies] air = { path = "../air" } -fluence = { version = "0.6.2", features = ["logger"] } +fluence = { version = "0.6.5", features = ["logger"] } # Keep 0.2.65 until this is resolved https://github.com/rustwasm/wasm-pack/issues/886 wasm-bindgen = "=0.2.65" @@ -26,4 +26,4 @@ serde = { version = "=1.0.118", features = [ "derive", "rc" ] } serde_json = "1.0" [features] -fce = ["air/fce"] +marine = ["air/marine"] diff --git a/air-interpreter/src/fce.rs b/air-interpreter/src/marine.rs similarity index 96% rename from air-interpreter/src/fce.rs rename to air-interpreter/src/marine.rs index 728ac8c0..5789e4d3 100644 --- a/air-interpreter/src/fce.rs +++ b/air-interpreter/src/marine.rs @@ -31,18 +31,18 @@ mod logger; use air::execute_air; use air::InterpreterOutcome; -use fluence::fce; +use fluence::marine; pub fn main() { logger::init_logger(); } -#[fce] +#[marine] pub fn invoke(init_peer_id: String, air: String, prev_data: Vec, data: Vec) -> InterpreterOutcome { execute_air(init_peer_id, air, prev_data, data) } -#[fce] +#[marine] pub fn ast(script: String) -> String { ast::ast(script) } diff --git a/air/Cargo.toml b/air/Cargo.toml index 637f563b..9836fd8a 100644 --- a/air/Cargo.toml +++ b/air/Cargo.toml @@ -10,7 +10,7 @@ path = "src/lib.rs" [dependencies] air-parser = { path = "../crates/air-parser" } -fluence = { version = "0.6.1", features = ["logger"] } +fluence = { version = "0.6.5", features = ["logger"] } polyplets = { path = "../crates/polyplets" } air-interpreter-interface = { path = "../crates/interpreter-interface" } @@ -52,5 +52,5 @@ harness = false [features] # indicates that this library should be compiled for the wasm bindgen target -# otherwise it will be compiled to the FCE target -fce = [] +# otherwise it will be compiled to the Marine target +marine = [] diff --git a/air/src/build_targets/fce_target.rs b/air/src/build_targets/marine_target.rs similarity index 97% rename from air/src/build_targets/fce_target.rs rename to air/src/build_targets/marine_target.rs index 9b0a36a7..792be2fb 100644 --- a/air/src/build_targets/fce_target.rs +++ b/air/src/build_targets/marine_target.rs @@ -16,7 +16,7 @@ use super::CallServiceResult; -use fluence::fce; +use fluence::marine; use fluence::module_manifest; use std::env::VarError; @@ -29,7 +29,7 @@ pub(crate) fn get_current_peer_id() -> std::result::Result { std::env::var(CURRENT_PEER_ID_ENV_NAME) } -#[fce] +#[marine] #[link(wasm_import_module = "host")] extern "C" { pub(crate) fn call_service(service_id: &str, fn_name: &str, args: &str, tetraplets: &str) -> CallServiceResult; diff --git a/air/src/build_targets/mod.rs b/air/src/build_targets/mod.rs index c35d7666..4610e5f2 100644 --- a/air/src/build_targets/mod.rs +++ b/air/src/build_targets/mod.rs @@ -14,9 +14,9 @@ * limitations under the License. */ -#[cfg(feature = "fce")] -mod fce_target; -#[cfg(not(feature = "fce"))] +#[cfg(feature = "marine")] +mod marine_target; +#[cfg(not(feature = "marine"))] mod wasm_bindgen_target; use serde::Deserialize; @@ -24,7 +24,7 @@ use serde::Serialize; pub const CALL_SERVICE_SUCCESS: i32 = 0; -#[fluence::fce] +#[fluence::marine] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct CallServiceResult { pub ret_code: i32, @@ -37,12 +37,12 @@ impl std::fmt::Display for CallServiceResult { } } -#[cfg(feature = "fce")] -pub(crate) use fce_target::call_service; -#[cfg(feature = "fce")] -pub(crate) use fce_target::get_current_peer_id; +#[cfg(feature = "marine")] +pub(crate) use marine_target::call_service; +#[cfg(feature = "marine")] +pub(crate) use marine_target::get_current_peer_id; -#[cfg(not(feature = "fce"))] +#[cfg(not(feature = "marine"))] pub(crate) use wasm_bindgen_target::call_service; -#[cfg(not(feature = "fce"))] +#[cfg(not(feature = "marine"))] pub(crate) use wasm_bindgen_target::get_current_peer_id; diff --git a/air/tests/build_test_binaries.sh b/air/tests/build_test_binaries.sh index 087b3455..9f104d89 100755 --- a/air/tests/build_test_binaries.sh +++ b/air/tests/build_test_binaries.sh @@ -6,5 +6,5 @@ for dir in ./security_tetraplets/*; do # skip non-directory entries [ -d "$dir" ] || continue - (cd "$dir"; fce build) + (cd "$dir"; marine build) done diff --git a/air/tests/security_tetraplets/auth_module/Cargo.toml b/air/tests/security_tetraplets/auth_module/Cargo.toml index 2ee5f512..88d9901d 100644 --- a/air/tests/security_tetraplets/auth_module/Cargo.toml +++ b/air/tests/security_tetraplets/auth_module/Cargo.toml @@ -10,6 +10,6 @@ path = "src/main.rs" [dependencies] air = { path = "../../../../air" } -fluence = "0.6.1" +fluence = "0.6.5" [workspace] diff --git a/air/tests/security_tetraplets/auth_module/src/main.rs b/air/tests/security_tetraplets/auth_module/src/main.rs index 77f65e48..6886b399 100644 --- a/air/tests/security_tetraplets/auth_module/src/main.rs +++ b/air/tests/security_tetraplets/auth_module/src/main.rs @@ -14,18 +14,18 @@ * limitations under the License. */ -use fluence::fce; +use fluence::marine; const ADMIN_PEER_PK: &str = "12D3KooWEXNUbCXooUwHrHBbrmjsrpHXoEphPwbjQXEGyzbqKnE1"; fn main() {} -#[fce] +#[marine] struct AuthResult { pub is_authorized: bool, } -#[fce] +#[marine] fn is_authorized() -> AuthResult { let call_parameters = fluence::get_call_parameters(); let is_authorized = call_parameters.init_peer_id == ADMIN_PEER_PK; diff --git a/air/tests/security_tetraplets/log_storage/Cargo.toml b/air/tests/security_tetraplets/log_storage/Cargo.toml index dacc9508..9746cc23 100644 --- a/air/tests/security_tetraplets/log_storage/Cargo.toml +++ b/air/tests/security_tetraplets/log_storage/Cargo.toml @@ -10,6 +10,6 @@ path = "src/main.rs" [dependencies] air = { path = "../../../../air" } -fluence = "0.6.1" +fluence = "0.6.5" [workspace] diff --git a/air/tests/security_tetraplets/log_storage/src/main.rs b/air/tests/security_tetraplets/log_storage/src/main.rs index ffc30a25..4358bc33 100644 --- a/air/tests/security_tetraplets/log_storage/src/main.rs +++ b/air/tests/security_tetraplets/log_storage/src/main.rs @@ -14,11 +14,11 @@ * limitations under the License. */ -use fluence::fce; +use fluence::marine; fn main() {} -#[fce] +#[marine] fn delete(is_authorized: bool, _record_id: String) -> String { let call_parameters = fluence::get_call_parameters(); let tetraplets = call_parameters.tetraplets; diff --git a/crates/interpreter-interface/Cargo.toml b/crates/interpreter-interface/Cargo.toml index feac89b9..b29ffb95 100644 --- a/crates/interpreter-interface/Cargo.toml +++ b/crates/interpreter-interface/Cargo.toml @@ -11,7 +11,7 @@ name = "air_interpreter_interface" path = "src/lib.rs" [dependencies] -fluence = "0.6.1" +fluence = "0.6.5" fluence-it-types = "0.3.0" serde = "=1.0.118" diff --git a/crates/interpreter-interface/src/lib.rs b/crates/interpreter-interface/src/lib.rs index 7a728544..aefa1566 100644 --- a/crates/interpreter-interface/src/lib.rs +++ b/crates/interpreter-interface/src/lib.rs @@ -14,7 +14,7 @@ * limitations under the License. */ -use fluence::fce; +use fluence::marine; use fluence_it_types::IValue; use serde::Deserialize; @@ -23,7 +23,7 @@ use serde::Serialize; pub const INTERPRETER_SUCCESS: i32 = 0; /// Describes a result returned at the end of the interpreter execution. -#[fce] +#[marine] #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct InterpreterOutcome { /// A return code, where INTERPRETER_SUCCESS means success. diff --git a/crates/polyplets/Cargo.toml b/crates/polyplets/Cargo.toml index 53e2e3f5..f4e34b26 100644 --- a/crates/polyplets/Cargo.toml +++ b/crates/polyplets/Cargo.toml @@ -10,6 +10,6 @@ name = "polyplets" path = "src/lib.rs" [dependencies] -fluence = { version = "0.6.1", features = ["logger"] } +fluence = { version = "0.6.5", features = ["logger"] } serde = { version = "=1.0.118", features = ["rc", "derive"] } diff --git a/crates/test-module/Cargo.toml b/crates/test-module/Cargo.toml index 832285a8..07f66444 100644 --- a/crates/test-module/Cargo.toml +++ b/crates/test-module/Cargo.toml @@ -10,4 +10,4 @@ name = "air_test_module" path = "src/main.rs" [dependencies] -fluence = { version = "0.6.1", features = ["logger"] } +fluence = { version = "0.6.5", features = ["logger"] } diff --git a/crates/test-module/src/main.rs b/crates/test-module/src/main.rs index 69efe766..7880680b 100644 --- a/crates/test-module/src/main.rs +++ b/crates/test-module/src/main.rs @@ -25,17 +25,17 @@ unreachable_patterns )] -use fluence::fce; +use fluence::marine; fn main() {} -#[fce] +#[marine] pub struct CallServiceResult { pub ret_code: i32, pub result: String, } -#[fce] +#[marine] pub fn call_service( service_id: String, fn_name: String, diff --git a/crates/test-utils/Cargo.toml b/crates/test-utils/Cargo.toml index 7de85ce6..3f437cbe 100644 --- a/crates/test-utils/Cargo.toml +++ b/crates/test-utils/Cargo.toml @@ -10,6 +10,6 @@ name = "air_test_utils" path = "src/lib.rs" [dependencies] -fluence = "0.6.1" +fluence = "0.6.5" avm-server = { path = "../../avm/server", features = ["raw-avm-api"] } serde_json = "1.0.56"