# tiny_captcha : rust 轻量级验证码生成器,可以编译成 wasm [→ 中文说明](#cn) # tiny_captcha : rust lightweight captcha generator that compiles to wasm [Project documentation](https://docs.rs/tiny_captcha) Lightweight CAPTCHA generator, relying only on rand and gif, can be compiled into wasm. Based on [Ivan Tikhonov's captcha library](http://brokestream.com/captcha.html), rewritten with [c2rust](https://c2rust.com) code conversion. The font file is from https://github.com/ITikhonov/captcha/blob/master/font.h and is ASCII artwork, make and then use unfont to generate the array. Use the demo : ```rust use anyhow::Result; use std::{env::current_exe, fs::File}; use tiny_captcha::gif; fn main() -> Result<()> { for i in 1..=10 { let exe = current_exe()?; let gif_path = exe.parent().unwrap().join(format!("{}.gif", i)); let word = gif(&mut File::create(&gif_path)?); println!("{} {}", word, gif_path.display()); } Ok(()) } ``` The output is shown : ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/1.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/2.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/3.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/4.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/5.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/6.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/7.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/8.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/9.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/10.gif) # tiny_captcha : rust 轻量级验证码生成器,可以编译成 wasm [项目文档](https://docs.rs/tiny_captcha) 轻量级验证码生成器,仅依赖于 rand 和 gif ,可以编译成 wasm 。 在 [Ivan Tikhonov 的验证码库](http://brokestream.com/captcha.html) 的基础上,用 [c2rust](https://c2rust.com) 转代码后改写。 字体文件来自 https://github.com/ITikhonov/captcha/blob/master/font.h ,是 ASCII 艺术字 , make 之后用 unfont 生成数组。 使用演示 : ```rust #include ./examples/main.rs ``` 输出展示 : ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/1.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/2.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/3.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/4.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/5.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/6.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/7.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/8.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/9.gif) ![](https://raw.githubusercontent.com/rmw-link/tiny_captcha/master/gif/10.gif) ### 关于 本项目隶属于 **人民网络 ([rmw.link](//rmw.link))** 代码计划。 ![人民网络](https://raw.githubusercontent.com/rmw-link/logo/master/rmw.red.bg.svg)