techcloud
Схемы, правила и понятные ошибки для Rust.
techcloud — небольшая библиотека валидации для Rust. Правила комбинируются, ошибки собираются списком, а не выбрасываются по одной, а сообщения готовы к показу пользователю.
cargo add techcloud
Пример
use techcloud::{Schema, Error};
#[tokio::main]
async fn main() -> Result<(), Error> {
let schema = Schema::builder()
.allow_unknown(false)
.max_errors(100)
.build()?;
schema.field("email", "required|email").await?;
let items = schema.validate(b"{\"email\":\"ada@example.com\"}").await?;
println!("{items:?}");
Ok(())
}
Возможности
- Пути к полям. У каждой ошибки есть путь вида
items[2].price. - Скорость. Схемы компилируются один раз и переиспользуются для каждого значения.
- Свои сообщения. Переопределите любое сообщение или переведите все разом.
- Без магии рефлексии. Схемы — обычные значения, которые можно читать, тестировать и передавать.
- Вложенные данные. Проверка объектов, списков и словарей любой глубины.
- Все ошибки сразу. Проверка не останавливается на первой проблеме — вы получаете полный список.
Документация
УстановкаТребования, установка и сборка из исходников.
Первые шагиПервая программа и основные понятия.
РецептыЗаконченные программы для типичных задач.
КонфигурацияВсе параметры, их типы и значения по умолчанию.
Справочник APIСигнатуры и поведение публичного API.
БенчмаркиБенчмарки и советы по скорости.
ТестированиеКак тестировать код, использующий библиотеку.
ДиагностикаЧастые проблемы и их решения.
FAQКороткие ответы на частые вопросы.
Обновление версийКак переходить между мажорными версиями.
РелизыИстория релизов.
БезопасностьПоддерживаемые версии и сообщения об уязвимостях.
СообществоГде задать вопрос и как связаться с авторами.