[package]
name = "aluvm"
description = "AluVM rust implementation"
version = "0.9.0-rc.2"
authors = ["Dr Maxim Orlovsky <orlovsky@lnp-bp.org>"]
edition = "2018"
license = "MIT"
repository = "https://github.com/aluvm/rust-aluvm"
homepage = "https://aluvm.org"
keywords = ["virtual-machine", "emulator", "functional", "risc", "edge-computing"]
categories = ["no-std", "embedded", "compilers", "cryptography", "emulators"]
readme = "README.md"
exclude = [".github"]

[lib]
name = "aluvm"

[dependencies]
amplify = { version = "3.13.0", default-features = false, features = ["apfloat", "derive", "hex"] }
paste = "1"
strict_encoding = { version = "0.9.0-rc.2", default-features = false, features = ["float", "derive"], optional = true }
bitcoin_hashes = { version = "0.11.0", default-features = false } # this is most well-maintained generic hash implementation library
bech32 = { version = "0.9.1", default-features = false }
secp256k1 = { version = "0.24.2", optional = true, features = ["global-context"] }
curve25519-dalek = { version = "3.2", optional = true }
half = "2.1.0"
serde_crate = { package = "serde", version = "1", optional = true }
serde_with = { version = "1.14", optional = true }

[features]
default = []
all = ["std", "secp256k1", "curve25519", "strict_encoding", "serde"]
std = ["amplify/std", "bitcoin_hashes/std", "secp256k1/std", "curve25519-dalek/std", "curve25519-dalek/alloc", "bech32/std"]
curve25519 = ["curve25519-dalek"]
serde = ["serde_crate", "serde_with", "amplify/serde", "bitcoin_hashes/serde", "std", "secp256k1/std", "curve25519-dalek/serde"]

[[example]]
name = "asm"
required-features = ["all"]
