neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻译准备中
Pure-Rust Oniguruma-compatible regex engine — same feature class, no C toolchain.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Part of Ferramenta, a family of Rust tools.
Evidence, not badges:
test parity with the C suite ·
coverage gate enforced in CI ·
unsafe code policy
Oniguruma is the regex engine behind
Ruby, PHP (mbstring),
TextMate grammars, and tools like
jq. It supports features that most regex
libraries don't: named captures with multiple syntaxes, look-behind of
variable length, conditional patterns, absent expressions, 886 Unicode
properties, subexpression calls, and 12 syntax modes from Perl to POSIX.查看完整 README ↗Part of Ferramenta, a family of Rust tools.
Bring your Oniguruma patterns to Rust.
Keep the look-behind, backreferences and recursion your patterns rely on,
with a familiar Regex API and a TextMate scanner built for syntax
highlighters. Cargo handles the build, including WebAssembly. No C compiler,
no bindgen, just Rust.
cargo add ferroni
use ferroni::prelude::*;
fn main() -> Result<(), RegexError> {
// A look-behind and named groups: Oniguruma syntax, a familiar API.
let re = Regex::new(r"(?<=Date: )(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})")?;
let caps = re.captures("Date: 2026-02-12").unwrap();
assert_eq!(caps.get(0).unwrap().as_str(), "2026-02-12");
assert_eq!(caps.name("year").unwrap().as_str(), "2026");
Ok(())
}
That's a look-behind and three named captures, ready to use in your Rust project. Compile once, then reuse the pattern across your searches.
| What are you building? | Start here |
|---|---|
| Matching, extraction or replacement | Getting started |
| A tokenizer or TextMate highlighter | Scanner guide |
| A highlighter that loads the same patterns on every start | Prepared Eager archives |
An application moving from regex or onig | API mapping and default differences |
Give your patterns room to work. Look-around, backreferences, recursive
subexpressions and all twelve Oniguruma syntax modes are included. Ferroni
is the only Rust engine among those checked with every feature in the
feature matrix.
When you need linear-time matching for user-supplied patterns, Rust's
regex crate is a great fit.
Serious speed for patterns you reuse. In the published regex workloads, Ferroni matches 2.5–3.3× faster than C Oniguruma in the family-weighted aggregate after compilation, without generating machine code at runtime. The tasks come from Django, Rails, WordPress and other projects. Results vary by task. C still compiles patterns faster in the aggregate, so check first-use costs when you rarely reuse a pattern. See the benchmark summary and full results for the measured workloads, platforms and tradeoffs.
Build the highlighter you have in mind. Ferroni's Scanner follows vscode-oniguruma's scanning model, including UTF-16 offsets for editor integrations. It finds the next match across a set of patterns; your TextMate runtime handles grammar rules and scopes. Ferriki builds a Shiki-compatible highlighter on it.
Prepare scanner groups once. Reuse them across starts. With the optional
precompiled-eager feature, export compiled programs and prepared Eager group
instructions as a portable pair. Ship them with your application, embed them,
or serve them as assets for compatible native and WebAssembly builds. Requested
records decode on demand; missing or incompatible groups use normal Eager
preparation. See the prepared Eager guide
for generation, loading and the work that remains local.
An established engine, a Rust future. Oniguruma's C project closed in April 2025. Ferroni continues it, ported function by function, and passes all 2,974 upstream UTF-8 tests. Buffer and string processing use safe Rust. The 10 unsafe sites are confined to links between parse-tree nodes.
Ferroni covers ASCII and UTF-8, two of Oniguruma's 29 encodings, and leaves
out the POSIX and GNU APIs. It backtracks like C Oniguruma, so give searches
over untrusted input a time or retry limit. On wasm32-unknown-unknown, the
browser target, use a retry limit; that target has no clock for a time limit.
See compatibility and
untrusted input.
publication.json and tiktoken pre-tokenization in additional_results.Ferroni's Oniguruma compatibility scope is complete and maintained. Bug fixes, Unicode updates, toolchain upkeep and security fixes remain in scope. Rust-only scanner optimizations and startup reuse extend the port without expanding its syntax or encoding scope. See the project status for the maintenance scope.
CONTRIBUTING.md covers builds, tests and benchmarks; pull requests keep the structural parity with C Oniguruma that the port is built on. Report vulnerabilities privately as described in SECURITY.md.
Built on K. Kosako's Oniguruma and Microsoft's vscode-oniguruma Scanner API and tests. Ferroni is an independent continuation and is not affiliated with or endorsed by Oniguruma's original author.
BSD-2-Clause, inherited from the Oniguruma source this port is based on.
Ferramenta — A family of Rust tools.
Engines
| Tool | Job |
|---|---|
| ferriki | Shiki-compatible syntax highlighting |
| ferromark | Markdown to HTML, sanitized by default |
| ferrolex | Spell checking for text and code |
| ferrocat | Translation catalog engine |
| ferralk | Glob matching and parallel filesystem walking |
| ferrugo | PDF previews for untrusted files |
Applications
| Tool | Job |
|---|---|
| palamedes | Internationalization for TypeScript applications |
| dalo | Your team's agent setup, versioned like code |