update rust-sdk to 0.6.4 & switch to marine

This commit is contained in:
folex 2021-05-12 15:37:31 +03:00
parent 7bcb16ad43
commit dc44acf0b2
13 changed files with 239 additions and 118 deletions

5
build.sh Normal file → Executable file
View File

@ -3,13 +3,13 @@
(
cd services/user-list-inmemory
cargo update
fce build --release
marine build --release
)
(
cd services/history-inmemory
cargo update
fce build --release
marine build --release
)
rm -f app/user_list.wasm
@ -17,4 +17,3 @@ rm -f app/history.wasm
cp services/user-list-inmemory/target/wasm32-wasi/release/user_list.wasm app/
cp services/history-inmemory/target/wasm32-wasi/release/history.wasm app/

View File

@ -4,9 +4,15 @@ version = 3
[[package]]
name = "anyhow"
version = "1.0.39"
version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81cddc5f91628367664cc7c69714ff08deee8a3efc54623011c772544d7b2767"
checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
[[package]]
name = "autocfg"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "bitflags"
@ -27,49 +33,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "fluence"
version = "0.2.18"
name = "chrono"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27d9a5e4292d7bbd809a0e968e3c3aacac91cbc5acab3e26ee1e1d726f0aab24"
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
dependencies = [
"fluence-sdk-macro",
"fluence-sdk-main",
"libc",
"num-integer",
"num-traits",
"time",
"winapi",
]
[[package]]
name = "fluence-sdk-macro"
version = "0.2.18"
name = "fluence"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea1a7c75a617f827d1ba9a17b4d84e1565ab239915c63f5a85c41f89a9f1d4ba"
checksum = "916f05f558b0de8a21b5447a6a790ac8d312324ced8b43a713b30a82b891720c"
dependencies = [
"fluence-sdk-wit",
"fluence-sdk-main",
"marine-macro",
"marine-timestamp-macro",
"serde",
]
[[package]]
name = "fluence-sdk-main"
version = "0.2.18"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6edcc983f9517c1b6bf9f851ef27f2894a3159aaa4a2fb6c9deb2ae8ecb603fa"
checksum = "95a32b74adb1bf8d2783a4690c378c7ebfc5cc1abaa6f99c6537d1a0f1a19e5d"
dependencies = [
"fluence-sdk-macro",
"log",
"marine-macro",
"serde",
]
[[package]]
name = "fluence-sdk-wit"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b75dbdd0275160f3818db3218563d791e6c612b616cd3c5d6e66283f207f648d"
dependencies = [
"proc-macro2",
"quote",
"serde",
"serde_json",
"syn",
"uuid",
]
[[package]]
name = "getrandom"
version = "0.2.2"
@ -112,15 +110,15 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
[[package]]
name = "libc"
version = "0.2.91"
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8916b1f6ca17130ec6568feccee27c156ad12037880833a3b842a823236502e7"
checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
[[package]]
name = "lock_api"
version = "0.4.2"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
dependencies = [
"scopeguard",
]
@ -134,6 +132,58 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "marine-macro"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b939048200868595393f9f42696398f683ed23d45e7ee7a0199cf1cfce7303d"
dependencies = [
"marine-macro-impl",
]
[[package]]
name = "marine-macro-impl"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58a4b4e7308a9401f08a46bddd1f7221bbdeb0ed6530b95f5956451084b72439"
dependencies = [
"proc-macro2",
"quote",
"serde",
"serde_json",
"syn",
"uuid",
]
[[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 = "num-integer"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.7.2"
@ -167,9 +217,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.24"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
dependencies = [
"unicode-xid",
]
@ -185,9 +235,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.2.5"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc"
dependencies = [
"bitflags",
]
@ -243,9 +293,9 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "syn"
version = "1.0.64"
version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fd9d1e9976102a03c542daa2eff1b43f9d72306342f3f8b3ed5fb8908195d6f"
checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
dependencies = [
"proc-macro2",
"quote",
@ -253,10 +303,21 @@ dependencies = [
]
[[package]]
name = "unicode-xid"
version = "0.2.1"
name = "time"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
dependencies = [
"libc",
"wasi",
"winapi",
]
[[package]]
name = "unicode-xid"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
[[package]]
name = "uuid"
@ -269,9 +330,9 @@ dependencies = [
[[package]]
name = "wasi"
version = "0.10.2+wasi-snapshot-preview1"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]]
name = "winapi"

View File

@ -9,7 +9,7 @@ name = "history"
path = "src/main.rs"
[dependencies]
fluence = { version = "0.2.18", features = ["logger"] }
fluence = { version = "0.6.4", features = ["logger"] }
anyhow = "1.0.31"
boolinator = "2.4.0"

View File

@ -14,9 +14,9 @@
* limitations under the License.
*/
use fluence::fce;
use fluence::marine;
#[fce]
#[marine]
#[derive(Clone, Debug, Default, Eq, PartialEq, Hash)]
pub struct HistoryEntry {
pub id: u64,

View File

@ -27,7 +27,7 @@ pub(crate) type Result<T> = std::result::Result<T, errors::HistoryError>;
pub fn main() {
WasmLoggerBuilder::new()
.with_log_level(log::Level::Info)
.with_log_level(log::LevelFilter::Info)
.build()
.unwrap();
}

View File

@ -15,23 +15,23 @@
*/
use crate::history_entry::HistoryEntry;
use fluence::fce;
use fluence::marine;
#[fce]
#[marine]
pub struct AddServiceResult {
pub ret_code: i32,
pub err_msg: String,
pub entry_id: u64,
}
#[fce]
#[marine]
pub struct GetEntriesServiceResult {
pub ret_code: i32,
pub err_msg: String,
pub entries: Vec<HistoryEntry>,
}
#[fce]
#[marine]
pub struct EmptyResult {
pub ret_code: i32,
pub err_msg: String,

View File

@ -20,12 +20,12 @@ use crate::history_entry::HistoryEntry;
use crate::results::{AddServiceResult, EmptyResult, GetEntriesServiceResult};
use crate::utils::u64_to_usize;
use crate::Result;
use fluence::{fce, CallParameters};
use fluence::{marine, CallParameters};
pub const SUCCESS_CODE: i32 = 0;
// add an entry if authenticated, return an error if not
#[fce]
#[marine]
fn add(entry: String, auth: bool) -> AddServiceResult {
fn add_impl(entry: String, auth: bool) -> Result<u64> {
is_authenticated(auth, 1)?;
@ -36,7 +36,7 @@ fn add(entry: String, auth: bool) -> AddServiceResult {
}
// get all entries
#[fce]
#[marine]
fn get_all(auth: bool) -> GetEntriesServiceResult {
fn get_all_impl(auth: bool) -> Result<Vec<HistoryEntry>> {
is_authenticated(auth, 0)?;
@ -46,7 +46,7 @@ fn get_all(auth: bool) -> GetEntriesServiceResult {
}
// get last entry
#[fce]
#[marine]
fn get_last(last: u64, auth: bool) -> GetEntriesServiceResult {
fn get_last_impl(last: u64, auth: bool) -> Result<Vec<HistoryEntry>> {
is_authenticated(auth, 1)?;
@ -56,7 +56,7 @@ fn get_last(last: u64, auth: bool) -> GetEntriesServiceResult {
}
// set tetraplet to check on the authentication process. Only the service owner could set it
#[fce]
#[marine]
pub fn set_tetraplet(
peer_id: String,
service_id: String,

View File

@ -4,9 +4,15 @@ version = 3
[[package]]
name = "anyhow"
version = "1.0.39"
version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81cddc5f91628367664cc7c69714ff08deee8a3efc54623011c772544d7b2767"
checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
[[package]]
name = "autocfg"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "bitflags"
@ -27,49 +33,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "fluence"
version = "0.2.18"
name = "chrono"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27d9a5e4292d7bbd809a0e968e3c3aacac91cbc5acab3e26ee1e1d726f0aab24"
checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
dependencies = [
"fluence-sdk-macro",
"fluence-sdk-main",
"libc",
"num-integer",
"num-traits",
"time",
"winapi",
]
[[package]]
name = "fluence-sdk-macro"
version = "0.2.18"
name = "fluence"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea1a7c75a617f827d1ba9a17b4d84e1565ab239915c63f5a85c41f89a9f1d4ba"
checksum = "916f05f558b0de8a21b5447a6a790ac8d312324ced8b43a713b30a82b891720c"
dependencies = [
"fluence-sdk-wit",
"fluence-sdk-main",
"marine-macro",
"marine-timestamp-macro",
"serde",
]
[[package]]
name = "fluence-sdk-main"
version = "0.2.18"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6edcc983f9517c1b6bf9f851ef27f2894a3159aaa4a2fb6c9deb2ae8ecb603fa"
checksum = "95a32b74adb1bf8d2783a4690c378c7ebfc5cc1abaa6f99c6537d1a0f1a19e5d"
dependencies = [
"fluence-sdk-macro",
"log",
"marine-macro",
"serde",
]
[[package]]
name = "fluence-sdk-wit"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b75dbdd0275160f3818db3218563d791e6c612b616cd3c5d6e66283f207f648d"
dependencies = [
"proc-macro2",
"quote",
"serde",
"serde_json",
"syn",
"uuid",
]
[[package]]
name = "getrandom"
version = "0.2.2"
@ -98,15 +96,15 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
[[package]]
name = "libc"
version = "0.2.91"
version = "0.2.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8916b1f6ca17130ec6568feccee27c156ad12037880833a3b842a823236502e7"
checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
[[package]]
name = "lock_api"
version = "0.4.2"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
dependencies = [
"scopeguard",
]
@ -120,6 +118,58 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "marine-macro"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b939048200868595393f9f42696398f683ed23d45e7ee7a0199cf1cfce7303d"
dependencies = [
"marine-macro-impl",
]
[[package]]
name = "marine-macro-impl"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58a4b4e7308a9401f08a46bddd1f7221bbdeb0ed6530b95f5956451084b72439"
dependencies = [
"proc-macro2",
"quote",
"serde",
"serde_json",
"syn",
"uuid",
]
[[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 = "num-integer"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.7.2"
@ -153,9 +203,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.24"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
dependencies = [
"unicode-xid",
]
@ -171,9 +221,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.2.5"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
checksum = "742739e41cd49414de871ea5e549afb7e2a3ac77b589bcbebe8c82fab37147fc"
dependencies = [
"bitflags",
]
@ -229,9 +279,9 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "syn"
version = "1.0.64"
version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fd9d1e9976102a03c542daa2eff1b43f9d72306342f3f8b3ed5fb8908195d6f"
checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82"
dependencies = [
"proc-macro2",
"quote",
@ -239,10 +289,21 @@ dependencies = [
]
[[package]]
name = "unicode-xid"
version = "0.2.1"
name = "time"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
dependencies = [
"libc",
"wasi",
"winapi",
]
[[package]]
name = "unicode-xid"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
[[package]]
name = "user_list"
@ -267,9 +328,9 @@ dependencies = [
[[package]]
name = "wasi"
version = "0.10.2+wasi-snapshot-preview1"
version = "0.10.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]]
name = "winapi"

View File

@ -9,7 +9,7 @@ name = "user_list"
path = "src/main.rs"
[dependencies]
fluence = { version = "0.2.16", features = ["logger"] }
fluence = { version = "0.6.4", features = ["logger"] }
anyhow = "1.0.31"
boolinator = "2.4.0"

View File

@ -27,7 +27,7 @@ pub(crate) type Result<T> = std::result::Result<T, errors::UserListError>;
pub fn main() {
// instantiate logger
WasmLoggerBuilder::new()
.with_log_level(log::Level::Info)
.with_log_level(log::LevelFilter::Info)
.build()
.unwrap();
}

View File

@ -15,29 +15,29 @@
*/
use crate::user::User;
use fluence::fce;
use fluence::marine;
#[fce]
#[marine]
pub struct GetUsersServiceResult {
pub ret_code: i32,
pub err_msg: String,
pub users: Vec<User>,
}
#[fce]
#[marine]
pub struct EmptyServiceResult {
pub ret_code: i32,
pub err_msg: String,
}
#[fce]
#[marine]
pub struct ExistsServiceResult {
pub ret_code: i32,
pub err_msg: String,
pub is_exists: bool,
}
#[fce]
#[marine]
pub struct AuthResult {
pub ret_code: i32,
pub err_msg: String,

View File

@ -18,24 +18,24 @@ use crate::results::{AuthResult, EmptyServiceResult, ExistsServiceResult, GetUse
use crate::storage_api::*;
use crate::user::User;
use crate::Result;
use fluence::{fce, CallParameters};
use fluence::{marine, CallParameters};
pub const SUCCESS_CODE: i32 = 0;
// get all users
#[fce]
#[marine]
fn get_users() -> GetUsersServiceResult {
get_all_users().into()
}
// get user by peer_id
#[fce]
#[marine]
fn get_user(peer_id: String) -> GetUsersServiceResult {
get_user_by_peer_id(peer_id).into()
}
// add a user too the service
#[fce]
#[marine]
fn join(user: User) -> EmptyServiceResult {
fn add_impl(user: User) -> Result<()> {
// TODO uncomment to have an access to join method only for existing users
@ -47,7 +47,7 @@ fn join(user: User) -> EmptyServiceResult {
}
// delete a user from the service
#[fce]
#[marine]
fn leave(peer_id: String) -> EmptyServiceResult {
fn delete_impl(peer_id: String) -> Result<()> {
check_auth()?;
@ -59,13 +59,13 @@ fn leave(peer_id: String) -> EmptyServiceResult {
}
// check if a user is exists in the service
#[fce]
#[marine]
fn is_exists(peer_id: String) -> ExistsServiceResult {
user_exists(peer_id).into()
}
// check if a caller is authenticated in this service
#[fce]
#[marine]
fn is_authenticated() -> AuthResult {
check_auth().into()
}

View File

@ -14,9 +14,9 @@
* limitations under the License.
*/
use fluence::fce;
use fluence::marine;
#[fce]
#[marine]
#[derive(Clone, Debug, Default, Eq, PartialEq, Hash)]
pub struct User {
pub peer_id: String,