QRLLIB - The QRL Core Library
This library currently exposes the following functionality:
- XMSS, XMSS_fast
- Shake128, Shake256, SHA2_256
- Hashchain seeds, etc.
- Helpers: seed generation, address generation, mnemonics
Platform support
Linux | OSX 10.12 | Windows 10 | |
---|---|---|---|
Python 3 | ✅ | ✅ | 🌱 |
Webassembly (JS) | ✅ | ✅ | ✅ |
Golang | 🌱 | - | - |
Java | - | - | - |
Installing
Ubuntu
sudo apt -y install swig3.0 python3-dev build-essential cmake ninja-build pkg-config
pip3 install pyqrllib
OSX
If you don't have brew yet, we think you should :) Install brew following the instructions here: https://brew.sh/
Now install some dependencies
brew install cmake python3 swig
pip3 install pyqrllib
Windows
TBD
Raspbian
sudo apt -y install swig3.0 python3-dev build-essential cmake ninja-build
sudo pip3 install -U setuptools
sudo pip3 install -U pyqrllib
Miscellaneous
Golang and Java wrappers are currently experimental (By default they are disabled in cmake)
brew install go --cross-compile-common
Development
Emscripten
In order to compile the webassembly and run node.js tests you first need to install CircleCI CLI:
Then run the following command
circleci build --job build_emscripten
This will compile and test the webassembly. Output files will be copied over to tests/js/tmp
You can then run node.js locally using npm.
License
This library is distributed under the MIT software license, see the accompanying file LICENSE or http://www.opensource.org/licenses/mit-license.php.
Some of the code is based on the xmss-reference implementation that has been released in the public domain by their respective authors.
Most of third party code has been included as git submodules for future reference.