anCaptcha
A No-JS, stateless captcha engine implemented in Rust. Originally designed for the darknet and Tor hidden services, to provide human verification without requiring JavaScript.
Core Engine
This crate provides the core logic for:
- Stateless Tokens: Authenticated encryption (ChaCha20-Poly1305) stores challenge state without server sessions.
- Resource Processing: JIT asset warming and noise injection to thwart automated solvers.
- Multi-Modal Challenges: Supports Rotate, Slider, and Find-the-Pair verification styles.
Usage
use ;
// 1. Initialize global asset cache (recommended on startup)
let cache = init_cache;
cache.warm_up;
// 2. Setup engine with 32-byte secret
let secret = ; // Use a secure key from env
let ac = new;
// 3. Generate a challenge
let bundle = ac.generate_rotate.expect;
// bundle.html -> The CSS-only captcha form
// bundle.token -> Encrypted state to be echoed in the form submission
Features
std: Enabled by default.rayon: Parallel asset pre-computation.
(c) 2026 Maverick. Apache-2.0.