
IronEye
Document intelligence and live public-web collection, behind one API key.
Send it bytes and it returns a typed document: entities, PII, secrets, tables, malware indicators, structure. Send it an identifier instead and it collects a normalised record from a public source while you wait. Same envelope either way, same audit chain, same retention policy.
The alternative is an extraction vendor, a DLP vendor, a file-scanning vendor, and the glue you write between them. That is the whole pitch.
Rust and axum on the server, PostgreSQL and Redis behind it, React 19 for the console. Self-hosted, one origin, in a container with no shell.
Seventeen modules, one call
Identity, text, tables, metadata, entities, PII, secrets, prompt injection, invoices, and eight more, across 22 file families. Ask for an invoice and it runs text, entities and tables first without being told.
Every finding shows its work
A byte offset, the rule that produced it, a confidence, and whether the value was observed or inferred. Nothing is promoted from a guess to a fact on the way out.
311 operations across 170 public platforms
288 of them run with no account and no key. The connectors are compile-time tables, so the list of hosts the service can ever contact is something you read rather than something you trust.
Nothing touches disk
Untrusted bytes are parsed in a sandboxed child process with file writes denied and syscalls filtered. A panic kills one module. The rest of the response still returns.
- lines of Rust
- 70,750lines of Rust
- collection operations
- 311collection operations
- accuracy checks, precision and recall
- 200,123accuracy checks, precision and recall