* build(deps): bump the patch-updates group across 1 directory with 35 updates Bumps the patch-updates group with 33 updates in the / directory: | Package | From | To | | --- | --- | --- | | [anyhow](https://github.com/dtolnay/anyhow) | `1.0.90` | `1.0.95` | | [async-trait](https://github.com/dtolnay/async-trait) | `0.1.83` | `0.1.84` | | [blake3](https://github.com/BLAKE3-team/BLAKE3) | `1.5.4` | `1.5.5` | | [chrono](https://github.com/chronotope/chrono) | `0.4.38` | `0.4.39` | | [clap](https://github.com/clap-rs/clap) | `4.5.20` | `4.5.23` | | [clap_complete](https://github.com/clap-rs/clap) | `4.5.33` | `4.5.40` | | [comfy-table](https://github.com/nukesor/comfy-table) | `7.1.1` | `7.1.3` | | [console](https://github.com/console-rs/console) | `0.15.8` | `0.15.10` | | [const_format](https://github.com/rodrimati1992/const_format_crates) | `0.2.33` | `0.2.34` | | [csv](https://github.com/BurntSushi/rust-csv) | `1.3.0` | `1.3.1` | | [flate2](https://github.com/rust-lang/flate2-rs) | `1.0.34` | `1.0.35` | | [futures-util](https://github.com/rust-lang/futures-rs) | `0.3.30` | `0.3.31` | | [hyper-util](https://github.com/hyperium/hyper-util) | `0.1.9` | `0.1.10` | | [indicatif](https://github.com/console-rs/indicatif) | `0.17.8` | `0.17.9` | | [moka](https://github.com/moka-rs/moka) | `0.12.8` | `0.12.10` | | [pin-project](https://github.com/taiki-e/pin-project) | `1.1.6` | `1.1.7` | | [pin-project-lite](https://github.com/taiki-e/pin-project-lite) | `0.2.14` | `0.2.15` | | [quote](https://github.com/dtolnay/quote) | `1.0.37` | `1.0.38` | | [semver](https://github.com/dtolnay/semver) | `1.0.23` | `1.0.24` | | [serde](https://github.com/serde-rs/serde) | `1.0.215` | `1.0.217` | | [serde_json](https://github.com/serde-rs/json) | `1.0.132` | `1.0.134` | | [tar](https://github.com/alexcrichton/tar-rs) | `0.4.42` | `0.4.43` | | [time](https://github.com/time-rs/time) | `0.3.36` | `0.3.37` | | [tokio-stream](https://github.com/tokio-rs/tokio) | `0.1.16` | `0.1.17` | | [tokio-util](https://github.com/tokio-rs/tokio) | `0.7.12` | `0.7.13` | | [toml](https://github.com/toml-rs/toml) | `0.8.14` | `0.8.19` | | [tracing](https://github.com/tokio-rs/tracing) | `0.1.40` | `0.1.41` | | [tracing-subscriber](https://github.com/tokio-rs/tracing) | `0.3.18` | `0.3.19` | | [url](https://github.com/servo/rust-url) | `2.5.2` | `2.5.4` | | [wasm-bindgen-test](https://github.com/rustwasm/wasm-bindgen) | `0.3.43` | `0.3.45` | | [js-sys](https://github.com/rustwasm/wasm-bindgen) | `0.3.72` | `0.3.76` | | [wasm-bindgen-futures](https://github.com/rustwasm/wasm-bindgen) | `0.4.45` | `0.4.49` | | [env_logger](https://github.com/rust-cli/env_logger) | `0.11.5` | `0.11.6` | Updates `anyhow` from 1.0.90 to 1.0.95 - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.90...1.0.95) Updates `async-trait` from 0.1.83 to 0.1.84 - [Release notes](https://github.com/dtolnay/async-trait/releases) - [Commits](https://github.com/dtolnay/async-trait/compare/0.1.83...0.1.84) Updates `blake3` from 1.5.4 to 1.5.5 - [Release notes](https://github.com/BLAKE3-team/BLAKE3/releases) - [Commits](https://github.com/BLAKE3-team/BLAKE3/compare/1.5.4...1.5.5) Updates `chrono` from 0.4.38 to 0.4.39 - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.38...v0.4.39) Updates `clap` from 4.5.20 to 4.5.23 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.20...clap_complete-v4.5.23) Updates `clap_complete` from 4.5.33 to 4.5.40 - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.33...clap_complete-v4.5.40) Updates `comfy-table` from 7.1.1 to 7.1.3 - [Release notes](https://github.com/nukesor/comfy-table/releases) - [Changelog](https://github.com/Nukesor/comfy-table/blob/main/CHANGELOG.md) - [Commits](https://github.com/nukesor/comfy-table/compare/v7.1.1...v7.1.3) Updates `console` from 0.15.8 to 0.15.10 - [Release notes](https://github.com/console-rs/console/releases) - [Changelog](https://github.com/console-rs/console/blob/main/CHANGELOG.md) - [Commits](https://github.com/console-rs/console/compare/0.15.8...0.15.10) Updates `const_format` from 0.2.33 to 0.2.34 - [Release notes](https://github.com/rodrimati1992/const_format_crates/releases) - [Changelog](https://github.com/rodrimati1992/const_format_crates/blob/master/Changelog.md) - [Commits](https://github.com/rodrimati1992/const_format_crates/commits/0.2.34) Updates `csv` from 1.3.0 to 1.3.1 - [Commits](https://github.com/BurntSushi/rust-csv/compare/1.3.0...1.3.1) Updates `flate2` from 1.0.34 to 1.0.35 - [Release notes](https://github.com/rust-lang/flate2-rs/releases) - [Changelog](https://github.com/rust-lang/flate2-rs/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-lang/flate2-rs/compare/1.0.34...1.0.35) Updates `futures-util` from 0.3.30 to 0.3.31 - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31) Updates `hyper-util` from 0.1.9 to 0.1.10 - [Release notes](https://github.com/hyperium/hyper-util/releases) - [Changelog](https://github.com/hyperium/hyper-util/blob/master/CHANGELOG.md) - [Commits](https://github.com/hyperium/hyper-util/compare/v0.1.9...v0.1.10) Updates `indicatif` from 0.17.8 to 0.17.9 - [Release notes](https://github.com/console-rs/indicatif/releases) - [Commits](https://github.com/console-rs/indicatif/compare/0.17.8...0.17.9) Updates `moka` from 0.12.8 to 0.12.10 - [Changelog](https://github.com/moka-rs/moka/blob/main/CHANGELOG.md) - [Commits](https://github.com/moka-rs/moka/compare/v0.12.8...v0.12.10) Updates `pin-project` from 1.1.6 to 1.1.7 - [Release notes](https://github.com/taiki-e/pin-project/releases) - [Changelog](https://github.com/taiki-e/pin-project/blob/main/CHANGELOG.md) - [Commits](https://github.com/taiki-e/pin-project/compare/v1.1.6...v1.1.7) Updates `pin-project-lite` from 0.2.14 to 0.2.15 - [Release notes](https://github.com/taiki-e/pin-project-lite/releases) - [Changelog](https://github.com/taiki-e/pin-project-lite/blob/main/CHANGELOG.md) - [Commits](https://github.com/taiki-e/pin-project-lite/compare/v0.2.14...v0.2.15) Updates `quote` from 1.0.37 to 1.0.38 - [Release notes](https://github.com/dtolnay/quote/releases) - [Commits](https://github.com/dtolnay/quote/compare/1.0.37...1.0.38) Updates `semver` from 1.0.23 to 1.0.24 - [Release notes](https://github.com/dtolnay/semver/releases) - [Commits](https://github.com/dtolnay/semver/compare/1.0.23...1.0.24) Updates `serde` from 1.0.215 to 1.0.217 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.215...v1.0.217) Updates `serde_derive` from 1.0.215 to 1.0.217 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.215...v1.0.217) Updates `serde_json` from 1.0.132 to 1.0.134 - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.132...v1.0.134) Updates `tar` from 0.4.42 to 0.4.43 - [Commits](https://github.com/alexcrichton/tar-rs/compare/0.4.42...0.4.43) Updates `time` from 0.3.36 to 0.3.37 - [Release notes](https://github.com/time-rs/time/releases) - [Changelog](https://github.com/time-rs/time/blob/main/CHANGELOG.md) - [Commits](https://github.com/time-rs/time/compare/v0.3.36...v0.3.37) Updates `tokio-stream` from 0.1.16 to 0.1.17 - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-stream-0.1.16...tokio-stream-0.1.17) Updates `tokio-util` from 0.7.12 to 0.7.13 - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.12...tokio-util-0.7.13) Updates `toml` from 0.8.14 to 0.8.19 - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.14...toml-v0.8.19) Updates `tracing` from 0.1.40 to 0.1.41 - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.40...tracing-0.1.41) Updates `tracing-subscriber` from 0.3.18 to 0.3.19 - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.18...tracing-subscriber-0.3.19) Updates `url` from 2.5.2 to 2.5.4 - [Release notes](https://github.com/servo/rust-url/releases) - [Commits](https://github.com/servo/rust-url/compare/v2.5.2...v2.5.4) Updates `wasm-bindgen-test` from 0.3.43 to 0.3.45 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `js-sys` from 0.3.72 to 0.3.76 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `wasm-bindgen-futures` from 0.4.45 to 0.4.49 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `web-sys` from 0.3.72 to 0.3.76 - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) Updates `env_logger` from 0.11.5 to 0.11.6 - [Release notes](https://github.com/rust-cli/env_logger/releases) - [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md) - [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.5...v0.11.6) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: async-trait dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: blake3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: chrono dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: clap_complete dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: comfy-table dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: console dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: const_format dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: csv dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: flate2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: futures-util dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: hyper-util dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: indicatif dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: moka dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: pin-project dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: pin-project-lite dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: quote dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: semver dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: serde_derive dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: tar dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: time dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: tokio-stream dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: tokio-util dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: tracing dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: tracing-subscriber dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: url dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: wasm-bindgen-test dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: js-sys dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: wasm-bindgen-futures dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: web-sys dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates - dependency-name: env_logger dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch-updates ... Signed-off-by: dependabot[bot] <support@github.com> * Use expect in geodata test to give error message on failure I keep hitting this error on CI, from what I think is network hickup. But it's hard to tell form the log since the error is swallowed. Explicitly unwrap the result so we get a more detailed error output --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jon Häggblad <jon.haggblad@gmail.com>
Go FFI
⚠️ This is an initial version of this library in order to give developers something to experiment with. If you use this code to begin testing out Mixnet integration and run into issues, errors, or have feedback, please feel free to open an issue; feedback from developers trying to use it will help us improve it. If you have questions feel free to reach out via our Matrix channel.
This repo contains:
lib.rs: an initial version of bindings for interacting with the Mixnet via the Rust SDK from Go. These are essentially match statemtns wrapping imported functions from thenym-ffi-sharedlib.ffi/: a directory containing:- the
bindings/files generated usinguniffi-bindgen-go example.go: an example of using the mixnet client functionality.proxy_example.go: an example of using the TcpProxy functionality.
- the
Useage - Consuming the Library
You can import the bindings as normal and interact with them as shown in the example files. These files import the bindings from this repository (hence the go.mod and go.sum in the crate root) but you can import them remotely as usual.
Useage - Developing on the Library
If you want to fork and add new features/functions to this library use the following instructions to rebuild the Go bindings.
Rust functions exposed to the Go binding library are in ./src/lib.rs.
The build.sh script in the root of the repository speeds up the task of building and linking the Rust and Go code.
- if want to quickly recompile your code run it as-is with
./build.sh - if you want to clean build both the Rust and Go code after removing existing compiled binaries run it with the optional
cleanargument:./build.sh clean.
Make sure to run the script from the root of the project directory, and that your LD PATH is set first!
RUST_BINARIES=../../../target/release echo 'export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:'${RUST_BINARIES} >> ~/.zshrc source ~/.zshrc
This script will:
- (optionally if called with
cleanargument) remove existing Rust and Go artifacts - build
lib.rswith the--releaseflag - compile the Go bindings
WIP you need to manually add the following cgo flags to the generated bindings immediately underneath LN3 (// #include <bindings.h). In the future this will be automated in build.sh:
// #cgo LDFLAGS: -L../../../../../target/release -lnym_go_ffi