What we're looking for¶
We'd love your help, especially with:
- Domain-specific extensions and new use cases. disarm is a kit of canonicalization and transliteration building blocks. If you work in a domain we haven't designed for β a library catalog, a moderation pipeline, an IDN registrar check, a search index, a data-cleaning ETL step, a linguistics workflow β and disarm almost does what you need, tell us. The most valuable feature requests come from real workflows we hadn't pictured. Use the π‘ Extension idea / new use case issue form.
- Language profiles. Profiles apply sparse overrides on top of the default table
(e.g. German
ΓΌβue). Adding or refining a profile for a language you know well is a high-value, self-contained contribution. See Language support. - A new language binding (distinct from a profile above). disarm's pure-Rust core
is wrapped per programming-language ecosystem β Ruby is live; Node, Go, Java, PHP, and
R are planned (#43β#48). A binding for an ecosystem you know well is high-value, but it
must feel native to that language, not be a re-export of the Rust/Python API. Read
BINDINGS.md β the per-binding definition of done β and use
bindings/ruby/as the template before you start. - Coverage requests. A confusable pair, a script, or a code point we don't yet map is a known limitation (see the Threat Model), not a vulnerability β but it is exactly how this layer improves. Use the πΊοΈ Coverage / confusable-gap issue form; a single missing pair is a perfectly good issue.
- Genuine feature requests and fixes. Bug reports with a minimal reproduction, and PRs that come with a test, are always welcome.
If you're not sure whether an idea fits, open an issue and ask. We would rather discuss a half-formed idea than have you not raise it.
Reporting bugs and requesting features¶
Please use the issue forms β they ask for the few things we need to act on a report (a version, a minimal reproduction, expected vs. actual output). A report we can reproduce in under a minute gets fixed far faster than one we have to interrogate.
Security issues are different: do not open a public issue. Follow SECURITY.md for private disclosure, and read the Threat Model first β it defines precisely what counts as a vulnerability versus an out-of-scope limitation.