[package]
edition = "2024"
rust-version = "1.93"
name = "fgf"
version = "2.1.0"
build = false
include = [
"src/**",
"benches/**",
"examples/**",
"/README.md",
"/CHANGELOG.md",
"/LICENSE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Faster Galois Fields: SIMD and portable finite-field arithmetic (binary towers and prime fields) and vector kernels"
homepage = "https://github.com/nanithefkuc/fgf"
readme = "README.md"
license = "MIT"
repository = "https://github.com/nanithefkuc/fgf"
[features]
alloc = []
default = [
"std",
"simd",
]
internals = []
simd = [
"std",
"dep:archmage",
]
simd512 = [
"simd",
"archmage/avx512",
"simdispatch/avx512",
]
std = [
"alloc",
"simdispatch/std",
]
[lib]
name = "fgf"
path = "src/lib.rs"
[[example]]
name = "binary_syndrome"
path = "examples/binary_syndrome.rs"
[[example]]
name = "extension_fields"
path = "examples/extension_fields.rs"
[[example]]
name = "field_arithmetic"
path = "examples/field_arithmetic.rs"
[[example]]
name = "peel_probe"
path = "examples/peel_probe.rs"
required-features = [
"std",
"alloc",
]
[[example]]
name = "prime_vectors"
path = "examples/prime_vectors.rs"
required-features = ["alloc"]
[[example]]
name = "shard_recovery"
path = "examples/shard_recovery.rs"
required-features = ["alloc"]
[[example]]
name = "streaming_encode"
path = "examples/streaming_encode.rs"
required-features = ["alloc"]
[[bench]]
name = "compare"
path = "benches/compare.rs"
harness = false
required-features = [
"std",
"simd",
"internals",
]
[[bench]]
name = "kernels"
path = "benches/kernels.rs"
harness = false
required-features = [
"std",
"simd",
"internals",
]
[[bench]]
name = "prime_ntt"
path = "benches/prime_ntt.rs"
harness = false
required-features = [
"std",
"internals",
]
[dependencies.archmage]
version = "=0.9.29"
optional = true
[dependencies.simdispatch]
version = "=0.2.0"
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies.criterion]
version = "0.8"
[profile.bench]
lto = "thin"
codegen-units = 1
[profile.profiling]
debug = 2
inherits = "release"
strip = "none"