phf 0.8.0

Runtime support for perfect hash function data structures

Compile-time generated maps and sets.

The phf::Map and phf::Set types have roughly comparable performance to a standard hash table, but can be generated as compile-time static values.


If the macros Cargo feature is enabled, the phf_map, phf_set, phf_ordered_map, and phf_ordered_set macros can be used to construct the PHF type. This method can be used with a stable compiler (rustc version 1.30+)

phf = { version = "0.7.24", features = ["macros"] }
use phf::{phf_map, phf_set};

static MY_MAP: phf::Map<&'static str, u32> = phf_map! {
"hello" => 1,
"world" => 2,

static MY_SET: phf::Set<&'static str> = phf_set! {
"hello world",
"hola mundo",

fn main() {
assert_eq!(MY_MAP["hello"], 1);
assert!(MY_SET.contains("hello world"));

(Alternatively, you can use the phf_codegen crate to generate PHF datatypes in a build script)