Rust-PHF
Rust-PHF is a library to generate efficient lookup tables at compile time using perfect hash functions.
It currently uses the CHD algorithm and can generate a 100,000 entry map in roughly .4 seconds.
MSRV (minimum supported rust version) is Rust 1.60.
Usage
PHF data structures can be constructed via either the procedural
macros in the phf_macros
crate or code generation supported by the
phf_codegen
crate.
To compile the phf
crate with a dependency on
libcore instead of libstd, enabling use in environments where libstd
will not work, set default-features = false
for the dependency:
[]
# to use `phf` in `no_std` environments
= { = "0.11", = false }
phf_macros
use phf_map;
static KEYWORDS: Map = phf_map! ;
[]
= { = "0.11", = ["macros"] }
Note
Currently, the macro syntax has some limitations and may not work as you want. See #183 or #196 for example.
phf_codegen
To use phf_codegen
on build.rs, you have to add dependencies under [build-dependencies]
:
[]
= { = "0.11.1", = false }
= "0.11.1"
Then put code on build.rs:
use env;
use File;
use ;
use Path;
and lib.rs:
include!;