# Crates

Open-source Rust crates, published on crates.io.

## Writing checks

- [ai-slop](https://justj.dev/crates/ai-slop): Lints bug reports, commit messages, changelogs and other outbound text for AI slop before it ships.
  - [Repository](https://github.com/hey-jj/ai-slop)
  - [crates.io](https://crates.io/crates/ai-slop)
- [unslop](https://justj.dev/crates/unslop): Finds filler, hedging, puffery and stock transitions in essays, posts, email, reports and docs, and points to the exact span.
  - [Repository](https://github.com/hey-jj/unslop)
  - [crates.io](https://crates.io/crates/unslop)
- [slop-detector](https://justj.dev/crates/slop-detector): Scans received text for chatbot paste residue, prompt-injection phrasing and formulaic writing, citing the bytes behind every finding.
  - [Repository](https://github.com/hey-jj/slop-detector)
  - [crates.io](https://crates.io/crates/slop-detector)
- [dale-chall](https://justj.dev/crates/dale-chall): The New Dale-Chall list of easy American-English words, as data for readability scoring.
  - [Repository](https://github.com/hey-jj/dale-chall)
  - [crates.io](https://crates.io/crates/dale-chall)

## Documents and data

- [data-classification](https://justj.dev/crates/data-classification): Recommends a sensitivity tier for each text document from versioned policy packs, with JSON evidence of what matched and where. Only a recorded human decision lowers a tier.
  - [Repository](https://github.com/hey-jj/data-classification)
  - [crates.io](https://crates.io/crates/data-classification)
- [text-mirror](https://justj.dev/crates/text-mirror): Converts Office documents, text-layer PDFs, email and ZIP archives into text, with a manifest that records how every file was handled.
  - [Repository](https://github.com/hey-jj/text-mirror)
  - [crates.io](https://crates.io/crates/text-mirror)
- [decomment](https://justj.dev/crates/decomment): Removes comments from source text in 13 languages without touching strings, templates or regex literals.
  - [Repository](https://github.com/hey-jj/decomment)
  - [crates.io](https://crates.io/crates/decomment)
- [sql-ddl-to-json-schema](https://justj.dev/crates/sql-ddl-to-json-schema): Parses MySQL and MariaDB table definitions into a table model and JSON Schema documents.
  - [Repository](https://github.com/hey-jj/sql-ddl-to-json-schema)
  - [crates.io](https://crates.io/crates/sql-ddl-to-json-schema)
- [subcue](https://justj.dev/crates/subcue): Parses, composes and converts SRT, WebVTT and ASS/SSA subtitle files.
  - [Repository](https://github.com/hey-jj/subcue)
  - [crates.io](https://crates.io/crates/subcue)

## Model tooling

- [tokenx](https://justj.dev/crates/tokenx): Estimates how many tokens a language model reads in a string, with no vocabulary or BPE table.
  - [Repository](https://github.com/hey-jj/tokenx)
  - [crates.io](https://crates.io/crates/tokenx)
- [token-sampling](https://justj.dev/crates/token-sampling): Sampling stages over model logits, from temperature, top-k and top-p to Mirostat and greedy selection.
  - [Repository](https://github.com/hey-jj/token-sampling)
  - [crates.io](https://crates.io/crates/token-sampling)
- [token-align](https://justj.dev/crates/token-align): Maps overlaps between two tokenizations of the same text, and character positions between two strings.
  - [Repository](https://github.com/hey-jj/token-align)
  - [crates.io](https://crates.io/crates/token-align)
- [sse-parse](https://justj.dev/crates/sse-parse): Incremental parser for Server-Sent Events byte streams, fed chunk by chunk from any transport.
  - [Repository](https://github.com/hey-jj/sse-parse)
  - [crates.io](https://crates.io/crates/sse-parse)

## Language

- [english-pos-tagger](https://justj.dev/crates/english-pos-tagger): Tags English parts of speech and adds base-form lemmas for nouns, verbs and adjectives.
  - [Repository](https://github.com/hey-jj/english-pos-tagger)
  - [crates.io](https://crates.io/crates/english-pos-tagger)
- [pos-tagger](https://justj.dev/crates/pos-tagger): Brill-style English part-of-speech tagger with a built-in lexicon of about 92,000 entries.
  - [Repository](https://github.com/hey-jj/pos-tagger)
  - [crates.io](https://crates.io/crates/pos-tagger)
- [english-tokenizer](https://justj.dev/crates/english-tokenizer): Splits a sentence into tokens and tags each one by type, such as word, number, URL, hashtag or emoji.
  - [Repository](https://github.com/hey-jj/english-tokenizer)
  - [crates.io](https://crates.io/crates/english-tokenizer)
- [snowstem](https://justj.dev/crates/snowstem): Snowball stemming for 21 languages, checked word for word against the Snowball test vocabularies.
  - [Repository](https://github.com/hey-jj/snowstem)
  - [crates.io](https://crates.io/crates/snowstem)
- [vader-parity](https://justj.dev/crates/vader-parity): VADER sentiment scoring with exact output parity against Python vaderSentiment 3.3.2.
  - [Repository](https://github.com/hey-jj/vader-parity)
  - [crates.io](https://crates.io/crates/vader-parity)
- [thefuzz-parity](https://justj.dev/crates/thefuzz-parity): Fuzzy string scoring and ranked matching, with scores tested against a pinned Python release.
  - [Repository](https://github.com/hey-jj/thefuzz-parity)
  - [crates.io](https://crates.io/crates/thefuzz-parity)
- [unicode-normalize-aligned](https://justj.dev/crates/unicode-normalize-aligned): Unicode NFC, NFD, NFKC and NFKD normalization that aligns every output character to the input.
  - [Repository](https://github.com/hey-jj/unicode-normalize-aligned)
  - [crates.io](https://crates.io/crates/unicode-normalize-aligned)
- [uax14-linebreak](https://justj.dev/crates/uax14-linebreak): Line break opportunities for Unicode 17.0.0 text, from the default rules of Unicode Standard Annex #14.
  - [Repository](https://github.com/hey-jj/uax14-linebreak)
  - [crates.io](https://crates.io/crates/uax14-linebreak)

## Security

- [redos-detector](https://justj.dev/crates/redos-detector): Scores the ReDoS risk of an ECMA-262 regular expression without running it.
  - [Repository](https://github.com/hey-jj/redos-detector)
  - [crates.io](https://crates.io/crates/redos-detector)
- [xss-filters](https://justj.dev/crates/xss-filters): Context-aware output encoding, so an untrusted string cannot break out of its HTML context and run script.
  - [Repository](https://github.com/hey-jj/xss-filters)
  - [crates.io](https://crates.io/crates/xss-filters)
- [secure-json-parse](https://justj.dev/crates/secure-json-parse): Parses untrusted JSON and blocks prototype-poisoning keys.
  - [Repository](https://github.com/hey-jj/secure-json-parse)
  - [crates.io](https://crates.io/crates/secure-json-parse)
- [graphql-strip-sensitive-literals](https://justj.dev/crates/graphql-strip-sensitive-literals): Redacts sensitive literals from a GraphQL document before logging or usage reporting.
  - [Repository](https://github.com/hey-jj/graphql-strip-sensitive-literals)
  - [crates.io](https://crates.io/crates/graphql-strip-sensitive-literals)

## Media and maps

- [mp4-track](https://justj.dev/crates/mp4-track): Reads tracks, sample tables and metadata from MP4 files under configurable limits, and writes progressive MP4.
  - [Repository](https://github.com/hey-jj/mp4-track)
  - [crates.io](https://crates.io/crates/mp4-track)
- [wav-codec](https://justj.dev/crates/wav-codec): Reads and writes PCM and IEEE-float WAV files.
  - [Repository](https://github.com/hey-jj/wav-codec)
  - [crates.io](https://crates.io/crates/wav-codec)
- [pitch-estimate](https://justj.dev/crates/pitch-estimate): Per-frame pitch detection with the McLeod pitch method and YIN.
  - [Repository](https://github.com/hey-jj/pitch-estimate)
  - [crates.io](https://crates.io/crates/pitch-estimate)
- [tiny-webp](https://justj.dev/crates/tiny-webp): Lossy WebP encoder with a cwebp-shaped command line.
  - [Repository](https://github.com/hey-jj/tiny-webp)
  - [crates.io](https://crates.io/crates/tiny-webp)
- [hqx](https://justj.dev/crates/hqx): Pixel-art magnification by 2x, 3x and 4x that keeps sharp edges sharp.
  - [Repository](https://github.com/hey-jj/hqx)
  - [crates.io](https://crates.io/crates/hqx)
- [mgrs-convert](https://justj.dev/crates/mgrs-convert): Converts latitude and longitude to and from UTM, UPS and MGRS grid references.
  - [Repository](https://github.com/hey-jj/mgrs-convert)
  - [crates.io](https://crates.io/crates/mgrs-convert)

## AI Stack Registry

[aistackregistry.com](https://aistackregistry.com): One catalog of current AI model ids, limits and provider settings, so a coding agent can update every repo from a single fetch.
