Cargo Features

gf256 has no features set by default.

gf256 = { version = "0.3.0", features = ["no-xmul", "no-tables", "small-tables", "thread-rng", "lfsr", "crc", "shamir", "raid", "rs"] }

Disable carry-less multiplication instructions, forcing the use of naive bitwise implementations

This is mostly available for testing/benchmarking purposes

Enables no-xmul of gf256-macros


Disable lookup tables, relying only on hardware instructions or naive implementations

This may be useful on memory constrained devices

Enables no-tables of gf256-macros


Limits lookup tables to "small tables", tables with <16 elements
This provides a compromise between full 256-byte tables and no-tables,
which may be useful on memory constrained devices

Enables small-tables of gf256-macros


Enable features that depend on ThreadRng

This is used to provide a default Rng implementation for Shamir's secret-sharing implementations

Note this requires std

Enables std and std_rng of rand

Affects shamir::shamir

lfsr = rand

Make LFSR macros and structs available

Enables lfsr of gf256-macros

Affects gf256::lfsr


Make CRC macros and functions available

Enables crc of gf256-macros

Affects gf256::crc

shamir = rand

Make Shamir secret-sharing macros and functions available
Note this requires alloc and rand

You may also want to enable the thread-rng feature, which is required for a default rng

Enables shamir of gf256-macros

Affects gf256::shamir


Make RAID-parity macros and functions available

Enables raid of gf256-macros

Affects gf256::raid


Note this requires alloc

Make Reed-Solomon macros and functions available

Enables rs of gf256-macros

Affects gf256::rs

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

rand lfsr? shamir? thread-rng?