<div align="center">
# salvo-captcha
A captcha middleware for [salvo](salvo.rs) framework. It uses [`captcha`](https://github.com/daniel-e/captcha) crate to generate captcha images.
[](https://ibb.co/XVRVMZj)
</div>
### Add to your project
First, add the following to your `Cargo.toml`:
```toml
[dependencies]
salvo-captcha = "0.1"
```
Or use [cargo-add](https://doc.rust-lang.org/cargo/commands/cargo-add.html) to add the dependency to your `Cargo.toml`:
```sh
$ cargo add salvo-captcha
```
### Usage
See the [examples](examples) directory for a complete example.
### Storage
The storage of the captcha is handled by a [`CaptchaStore`] trait. You can implement your own storage or use the `cacache-rs` by enabling the `cacache-storage` feature.
```toml
[dependencies]
salvo-captcha = { version = "0.1", features = ["cacache-storage"] }
```
### Captcha name and difficulty
In this table you can see the different between the difficulties and the name of the captcha.
| `Amelia` | Easy |  |
| `Amelia` | Medium |  |
| `Amelia` | Hard |  |
| `Lucy` | Easy |  |
| `Lucy` | Medium |  |
| `Lucy` | Hard |  |
| `Mila` | Easy |  |
| `Mila` | Medium |  |
| `Mila` | Hard |  |
### License
This project is licensed under the MIT license for more details see [LICENSE](LICENSE) or http://opensource.org/licenses/MIT.
[`CaptchaStore`]: https://docs.rs/salvo_captcha/0.1.0/salvo_captcha/trait.CaptchaStore.html
[cacache-rs]: https://github.com/zkat/cacache-rs