CFD library for Rust.
This library is development kit for crypto finance application. Useful when developing applications for cryptocurrencies.
- Bitcoin
- Liquid Network
- Bitcoin
- Bitcoin Script (builder, viewer)
- Transaction
- Create, Parse, Decode
- Simple pubkey-hash sign / verify
- Estimate Fee
- Coin Selection (FundRawTransaction)
- ECDSA Pubkey/Privkey (TweakAdd/Mul, Negate, Sign, Verify)
- BIP32, BIP39
- Output Descriptor (contains miniscript parser)
- Schnorr/Taproot
- Bitcoin Address (Segwit-v0, Segwit-v1, P2PKH/P2SH)
- Liquid Network
- Confidential Transaction
- Blind, Unblind
- Reissuance
- Confidential Address
- Confidential Transaction
- Rust : cfd-rust
- C/C++ : cfd
- Extend the cfd-core library. Defines the C language API and extension classes.
- C++ : cfd-core
- Core library. Definition base class.
- C/C++ : cfd
- other language:
- JavaScript : cfd-js
- WebAssembly : cfd-js-wasm
- Python : cfd-python
- C# : cfd-csharp
- Go : cfd-go
- Rust
- C/C++ Compiler - can compile c++11
- CMake (3.14.3 or higher)
download and install files.
- Rustup
- CMake (3.14.3 or higher)
- MSVC
- Visual Studio (Verified version is 2017 or higher)
- Build Tools for Visual Studio (2017 or higher)
- (Using only) msvc redistribution package
# xcode cli tools
xcode-select --install
# install dependencies using Homebrew
brew install cmake rust
# install dependencies using APT package Manager
apt-get install -y build-essential cmake
curl https://sh.rustup.rs -sSf | sh (select is 1)
cmake version 3.14.2 or lower, download from website and install cmake. (https://cmake.org/download/)
cargo build
only cargo build
. However, it takes time to build.
Using pkg-config, build is quickly.
# The described version is an example. If you use it, please rewrite it to an appropriate version.
wget https://github.com/p2pderivatives/cfd-rust/releases/download/v0.3.2/cfd-sys-v0.3.2-osx-xcode12.4-static-x86_64.zip
# decompress
sudo unzip -d / cfd-sys-v0.3.2-osx-xcode12.4-static-x86_64.zip
# build
cargo build
Using cmake find_package.
- get releases asset. (ex. https://github.com/p2pderivatives/cfd-rust/releases/download/v0.3.2/cfd-sys-v0.3.2-win-vs2019-x86_64.zip )
- Expand to PATH
cargo test
cargo run --example create_pubkey_address
- cfd (called by cfd-sys)
- cfd-core
- libwally-core (forked from ElementsProject/libwally-core)
- univalue (for JSON encoding and decoding)
- cfd-core
- rustfmt
- clippy
-
cargo
cargo doc
- Visual Studio (2017 or higher)
- Clang (7.x or higher)
- GCC (5.x or higher)
Git repository connections default to HTTPS.
However, depending on the connection settings of GitHub, you may only be able to connect via SSH.
As a countermeasure, forcibly establish SSH connection by setting CFD_CMAKE_GIT_SSH=1
in the environment variable.
- Windows: (On the command line. Or set from the system setting screen.)
set CFD_CMAKE_GIT_SSH=1
- MacOS & Linux(Ubuntu):
export CFD_CMAKE_GIT_SSH=1
Depending on your git environment, you may get the following error when checking out external:
Performing update step for 'libwally-core-download'
Current branch cmake_build is up to date.
No stash entries found.
No stash entries found.
No stash entries found.
CMake Error at /workspace/cfd-core/build/external/libwally-core/download/libwally-core-download-prefix/tmp/libwally-core-download-gitupdate.cmake:133 (message):
Failed to unstash changes in:
'/workspace/cfd-core/external/libwally-core/'.
You will have to resolve the conflicts manually
This phenomenon is due to the git update
related command.
Please set an environment variable that skips update processing.
- Windows: (On the command line. Or set from the system setting screen.)
set CFD_CMAKE_GIT_SKIP_UPDATE=1
- MacOS & Linux(Ubuntu):
export CFD_CMAKE_GIT_SKIP_UPDATE=1