Rust bindings to libsodium.
This project is largely based on sodiumoxide. Some main differences are:
|Crate|Documentation|Linux/OS X|Windows|Issues|
|:---:|:-----------:|:--------:|:-----:|:----:|
||
|
|
|
|
| MaidSafe website | SAFE Dev Forum | SAFE Network Forum | |:----------------------------------------:|:-------------------------------------------:|:----------------------------------------------:|
Certain situations may require building libsodium configured with --disable-pie
. To enable this,
set an environment variable RUST_SODIUM_DISABLE_PIE
while building, e.g.
sh
RUST_SODIUM_DISABLE_PIE=1 cargo build
If you already have a copy of libsodium, you can choose to link this rather than having rustsodium
download and build libsodium for you. You should ensure that it is the same version as is specified
in VERSION
of [our build.rs]
(https://github.com/maidsafe/rustsodium/blob/master/rust_sodium-sys/build.rs) file.
Set an environment variable RUST_SODIUM_LIB_DIR
to the folder where libsodium exists. A static
version of libsodium will be preferred unless you also set RUST_SODIUM_SHARED
to any value.
Alternatively, you can use pkgconfig if appropriate to locate libsodium by setting
RUST_SODIUM_USE_PKG_CONFIG
to any value. In this case, RUST_SODIUM_SHARED
has no effect, and
generally a shared version of libsodium will be used.
Install dependencies and toolchain:
sh
sudo apt update
sudo apt install build-essential gcc-arm-linux-gnueabihf libc6-armhf-cross libc6-dev-armhf-cross -y
rustup target add armv7-unknown-linux-gnueabihf
Add the following to a .cargo/config file:
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
Build by running:
sh
cargo build --release --target armv7-unknown-linux-gnueabihf
Install dependencies and toolchain:
sh
sudo apt update
sudo apt install build-essential gcc-multilib -y
rustup target add i686-unknown-linux-gnu
Build by running:
sh
cargo build --release --target i686-unknown-linux-gnu
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.