🍺 BREW Explorer

← all formulae

fst

brew install fst v0.4.3 Unlicense OR MIT

Represent large sets and maps compactly with finite state transducers

2
30-day installs · #14602
6
90-day · #13874
138
365-day · #8329
2.1k
★ GitHub stars · updated 1y ago

Build dependencies

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "rust"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Represent large sets and maps compactly with finite state transducers",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:37:51+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "fst",
  "github_default_branch": "master",
  "github_last_commit_at": "2024-09-25T20:46:04Z",
  "github_readme_excerpt": "fst\n===\nThis crate provides a fast implementation of ordered sets and maps using finite\nstate machines. In particular, it makes use of finite state transducers to map\nkeys to values as the machine is executed. Using finite state machines as data\nstructures enables us to store keys in a compact format that is also easily\nsearchable. For example, this crate leverages memory maps to make range queries\nvery fast.\n\nCheck out my blog post\n[Index 1,600,000,000 Keys with Automata and\nRust](https://blog.burntsushi.net/transducers/)\nfor extensive background, examples and experiments.\n\n[![Build status](https://github.com/BurntSushi/fst/workflows/ci/badge.svg)](https://github.com/BurntSushi/fst/actions)\n[![](https://meritbadge.herokuapp.com/fst)](https://crates.io/crates/fst)\n\nDual-licensed under MIT or the [UNLICENSE](https://unlicense.org/).\n\n\n### Documentation\n\nhttps://docs.rs/fst\n\nThe\n[`regex-automata`](https://docs.rs/regex-automata)\ncrate provides implementations of the `fst::Automata` trait when its\n`transducer` feature is enabled. This permits using DFAs compiled by\n`regex-automata` to search finite state transducers produced by this crate.\n\n\n### Installation\n\nSimply add a corresponding entry to your `Cargo.toml` dependency list:\n\n```toml,ignore\n[dependencies]\nfst = \"0.4\"\n```\n\n\n### Example\n\nThis example demonstrates building a set in memory and executing a fuzzy query\nagainst it. You\u0027ll need `fst = \"0.4\"` with the `levenshtein` feature enabled in\nyour `Cargo.toml`.\n\n```rust\nuse fst::{IntoStreamer, Set};\nuse fst::automaton::Levenshtein;\n\nfn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n  // A convenient way to create sets in memory.\n  let keys = vec![\"fa\", \"fo\", \"fob\", \"focus\", \"foo\", \"food\", \"foul\"];\n  let set = Set::from_iter(keys)?;\n\n  // Build our fuzzy query.\n  let lev = Levenshtein::new(\"foo\", 1)?;\n\n  // Apply our fuzzy query to the set we built.\n  let stream = set.search(lev).into_stream();\n\n  let keys = stream.into_strs()?;\n  assert_eq!(keys, vec![\"fo\", \"fob",
  "github_repo": "BurntSushi/fst",
  "github_stars": 2103,
  "github_topics": [],
  "homepage": "https://github.com/BurntSushi/fst",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 2,
  "installs_365d": 138,
  "installs_90d": 6,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "Unlicense OR MIT",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "fst",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 14602,
  "rank_365d": 8329,
  "rank_90d": 13874,
  "raw_hash": "e7537cb0a57859cd",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/f/fst.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": "HEAD",
  "version_stable": "0.4.3",
  "versioned_formulae": [],
  "why_use_this": null
}