chore: Update README.md
Some checks failed
Rust CI / Rust CI (push) Failing after 1m12s

Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
Awiteb 2024-08-12 20:28:55 +00:00
parent 29b4b80071
commit a294ebfe96
Signed by: awiteb
GPG key ID: 3F6B55640AA6682F

View file

@ -2,7 +2,7 @@
# salvo-captcha # salvo-captcha
A captcha middleware for [salvo](salvo.rs) framework. It uses [`captcha`](https://github.com/daniel-e/captcha) crate to generate captcha images. A captcha middleware for [salvo](salvo.rs) framework. With fully customizable captchas generator, storage, and finders
[![salvo-captcha-video](https://i.suar.me/9NjJ1)](https://ibb.co/XVRVMZj) [![salvo-captcha-video](https://i.suar.me/9NjJ1)](https://ibb.co/XVRVMZj)
@ -14,10 +14,10 @@ First, add the following to your `Cargo.toml`:
```toml ```toml
[dependencies] [dependencies]
salvo-captcha = "0.1" salvo-captcha = "0.2"
``` ```
Or use [cargo-add](https://doc.rust-lang.org/cargo/commands/cargo-add.html) to add the dependency to your `Cargo.toml`: Or use [`cargo add`] to add the dependency to your `Cargo.toml`:
```sh ```sh
$ cargo add salvo-captcha $ cargo add salvo-captcha
@ -25,39 +25,59 @@ $ cargo add salvo-captcha
## Usage ## Usage
See the [examples](examples) directory for a complete example. See the [examples] directory for a complete example. You can also see the implemented generators, storages, and finders in the source code.
## Storage ## 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. There is a default storage, which is [`MemoryStorage`] it's a simple in-memory storage. You can implement your own storage by implementing the [`CaptchaStorage`] trait.
### Cacache Storage
A high-performance, concurrent, content-addressable disk cache. The storage is based on [`cacache-rs`] crate. to use it, you need to enable the `cacache-storage` feature.
```toml ```toml
[dependencies] [dependencies]
salvo-captcha = { version = "0.1", features = ["cacache-storage"] } salvo-captcha = { version = "0.2", features = ["cacache-storage"] }
``` ```
## Captcha name and difficulty ## Captcha Finder
We provide fully customizable query parameters, form fields, and headers to find the captcha token and the captcha answer. You can implement your own finder by implementing the [`CaptchaFinder`] trait.
## Captcha Generator
We provide [`SimpleCaptchaGenerator`] which is a simple captcha generator based on the [`captcha`] crate. You can implement your own captcha generator by implementing the [`CaptchaGenerator`] trait.
### Captcha name and difficulty
In this table, you can see the difference between the difficulties and the name of the captcha. In this table, you can see the difference between the difficulties and the name of the captcha.
| Name | Easy | Medium | Hard | | Name | Easy | Medium | Hard |
| :----: | :----------------------------------: | :----------------------------------: | :----------------------------------: | | :-------------: | :----------------------------------: | :----------------------------------: | :----------------------------------: |
| Amelia | ![Simple](https://i.suar.me/1JaxG/s) | ![Simple](https://i.suar.me/l7zBl/s) | ![Simple](https://i.suar.me/qXAlx/s) | | Normal | ![Simple](https://i.suar.me/edwBG/s) | ![Simple](https://i.suar.me/NJmg0/s) | ![Simple](https://i.suar.me/OJK7M/s) |
| Lucy | ![Simple](https://i.suar.me/edwBG/s) | ![Simple](https://i.suar.me/NJmg0/s) | ![Simple](https://i.suar.me/OJK7M/s) | | SlightlyTwisted | ![Simple](https://i.suar.me/1JaxG/s) | ![Simple](https://i.suar.me/l7zBl/s) | ![Simple](https://i.suar.me/qXAlx/s) |
| Mila | ![Simple](https://i.suar.me/dO78z/s) | ![Simple](https://i.suar.me/PXBwK/s) | ![Simple](https://i.suar.me/8edgE/s) | | VeryTwisted | ![Simple](https://i.suar.me/dO78z/s) | ![Simple](https://i.suar.me/PXBwK/s) | ![Simple](https://i.suar.me/8edgE/s) |
## Mirrors ## Mirrors
- Github (https://github.com/TheAwiteb/salvo-captcha) - Github (<https://github.com/TheAwiteb/salvo-captcha>)
- Codeberg (https://codeberg.org/awiteb/salvo-captcha) - Codeberg (<https://codeberg.org/awiteb/salvo-captcha>)
### Main Repository ### Main Repository
- My Git (https://git.4rs.nl/awiteb/salvo-captcha) - My Git (<https://git.4rs.nl/awiteb/salvo-captcha>)
## License ## License
This project is licensed under the MIT license for more details see [LICENSE](LICENSE) or http://opensource.org/licenses/MIT. This project is licensed under the MIT license for more details see [LICENSE] or <http://opensource.org/licenses/MIT>.
[`CaptchaStore`]: https://docs.rs/salvo_captcha/0.1.0/salvo_captcha/trait.CaptchaStore.html [`MemoryStorage`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/struct.MemoryStorage.html
[`CaptchaStorage`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/trait.CaptchaStorage.html
[`cacache-rs`]: https://github.com/zkat/cacache-rs [`cacache-rs`]: https://github.com/zkat/cacache-rs
[`SimpleCaptchaGenerator`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/struct.SimpleCaptchaGenerator.html
[`CaptchaGenerator`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/trait.CaptchaGenerator.html
[`CaptchaFinder`]: https://docs.rs/salvo-captcha/latest/salvo_captcha/trait.CaptchaFinder.html
[examples]: https://git.4rs.nl/awiteb/salvo-captcha/src/branch/master/examples
[`captcha`]: https://github.com/daniel-e/captcha
[LICENSE]: https://git.4rs.nl/awiteb/salvo-captcha/src/branch/master/LICENSE
[`cargo add`]: https://doc.rust-lang.org/cargo/commands/cargo-add.html