From b0e1a8902083460f40e9b5d9601e859d1d50077e Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sat, 16 Jul 2022 23:38:51 +0800 Subject: [PATCH] feat: add wit-bindgen-sample --- __wasm/wit-bindgen-sample/.gitignore | 1 + __wasm/wit-bindgen-sample/README.md | 3 + __wasm/wit-bindgen-sample/container.wit | 1 + __wasm/wit-bindgen-sample/engine/Cargo.lock | 207 ++++++++++++++++++++ __wasm/wit-bindgen-sample/engine/Cargo.toml | 13 ++ __wasm/wit-bindgen-sample/engine/src/lib.rs | 15 ++ __wasm/wit-bindgen-sample/exports.wit | 2 + 7 files changed, 242 insertions(+) create mode 100644 __wasm/wit-bindgen-sample/.gitignore create mode 100644 __wasm/wit-bindgen-sample/README.md create mode 100644 __wasm/wit-bindgen-sample/container.wit create mode 100644 __wasm/wit-bindgen-sample/engine/Cargo.lock create mode 100644 __wasm/wit-bindgen-sample/engine/Cargo.toml create mode 100644 __wasm/wit-bindgen-sample/engine/src/lib.rs create mode 100644 __wasm/wit-bindgen-sample/exports.wit diff --git a/__wasm/wit-bindgen-sample/.gitignore b/__wasm/wit-bindgen-sample/.gitignore new file mode 100644 index 0000000..b49de6f --- /dev/null +++ b/__wasm/wit-bindgen-sample/.gitignore @@ -0,0 +1 @@ +wit-bindgen diff --git a/__wasm/wit-bindgen-sample/README.md b/__wasm/wit-bindgen-sample/README.md new file mode 100644 index 0000000..7a1c4c2 --- /dev/null +++ b/__wasm/wit-bindgen-sample/README.md @@ -0,0 +1,3 @@ + +git clone https://github.com/bytecodealliance/wit-bindgen.git + diff --git a/__wasm/wit-bindgen-sample/container.wit b/__wasm/wit-bindgen-sample/container.wit new file mode 100644 index 0000000..8fb9698 --- /dev/null +++ b/__wasm/wit-bindgen-sample/container.wit @@ -0,0 +1 @@ +fetch: func(config: string) -> string diff --git a/__wasm/wit-bindgen-sample/engine/Cargo.lock b/__wasm/wit-bindgen-sample/engine/Cargo.lock new file mode 100644 index 0000000..85749f0 --- /dev/null +++ b/__wasm/wit-bindgen-sample/engine/Cargo.lock @@ -0,0 +1,207 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "anyhow" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" + +[[package]] +name = "async-trait" +version = "0.1.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "engine" +version = "0.1.0" +dependencies = [ + "wit-bindgen-gen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "proc-macro2" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "pulldown-cmark" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8" +dependencies = [ + "bitflags", + "memchr", + "unicase", +] + +[[package]] +name = "quote" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "syn" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-ident" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" + +[[package]] +name = "unicode-normalization" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" + +[[package]] +name = "unicode-xid" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wit-bindgen-gen-core" +version = "0.1.0" +dependencies = [ + "anyhow", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-gen-rust" +version = "0.1.0" +dependencies = [ + "heck", + "wit-bindgen-gen-core", +] + +[[package]] +name = "wit-bindgen-gen-rust-wasm" +version = "0.1.0" +dependencies = [ + "heck", + "wit-bindgen-gen-core", + "wit-bindgen-gen-rust", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.1.0" +dependencies = [ + "async-trait", + "bitflags", + "wit-bindgen-rust-impl", +] + +[[package]] +name = "wit-bindgen-rust-impl" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "syn", + "wit-bindgen-gen-core", + "wit-bindgen-gen-rust-wasm", +] + +[[package]] +name = "wit-parser" +version = "0.1.0" +dependencies = [ + "anyhow", + "id-arena", + "pulldown-cmark", + "unicode-normalization", + "unicode-xid", +] diff --git a/__wasm/wit-bindgen-sample/engine/Cargo.toml b/__wasm/wit-bindgen-sample/engine/Cargo.toml new file mode 100644 index 0000000..8ef5aa8 --- /dev/null +++ b/__wasm/wit-bindgen-sample/engine/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "engine" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ['cdylib'] + +[dependencies] +wit-bindgen-gen-core = { path = '../wit-bindgen/crates/gen-core' } +wit-bindgen-rust = { path = '../wit-bindgen/crates/rust-wasm' } diff --git a/__wasm/wit-bindgen-sample/engine/src/lib.rs b/__wasm/wit-bindgen-sample/engine/src/lib.rs new file mode 100644 index 0000000..b0c2494 --- /dev/null +++ b/__wasm/wit-bindgen-sample/engine/src/lib.rs @@ -0,0 +1,15 @@ +wit_bindgen_rust::export!("../exports.wit"); +wit_bindgen_rust::import!("../container.wit"); + +struct Exports; + +impl exports::Exports for Exports { + fn eval_javascript(s: String) -> String { + // let a = container::fetch(""); + "".into() + } +} + +fn fetch_from_host(config: &str) -> String { + container::fetch(config) +} \ No newline at end of file diff --git a/__wasm/wit-bindgen-sample/exports.wit b/__wasm/wit-bindgen-sample/exports.wit new file mode 100644 index 0000000..eb07bba --- /dev/null +++ b/__wasm/wit-bindgen-sample/exports.wit @@ -0,0 +1,2 @@ +eval-javascript: func(script: string) -> string +