Comments 15
Хорошо бы добавить в сравнительную таблицу Sury валидатор Yup - у нас на работе используется.
Посмотреть сравнение по скорости с другими валидаторами
Yup настолько медленный, что с ним не интересно сравнивать.
https://moltar.github.io/typescript-runtime-type-benchmarks/
ReScript Schema = Sury
Тоесть у вас где-то eval
используется? Подскажите когда это нужно? Например: схема лежит в текстовой форме где-то в БД в строке и ее нужно подтянуть в динамически созданную форму тоже из БД?
API библиотеки позволяет сформировать схему, которая преобразуется в выверенный сниппет JS, который после eval
становится функцией валидации (что гораздо быстрее, чем руками проверять значения в JS на typeof
и т.д.). В случае со схемой в БД вряд ли библиотека чем то поможет.
К тому же в случае такой библиотеки это безопасно, потому что источником кода для eval
является сам код страницы. А вот с БД стоит быть аккуратным, чтобы не заэвалить что-то недоверенное.
С БД тоже может быть полезно, тк как часто нужно мапить формат из бызы в тот, что используется внутри приложения. Сури делает это лучше всех.
Плюс с помощью этого апи https://github.com/DZakh/sury/blob/main/docs/js-usage.md#unnest мы уменьшили время записи в базу на 30%. Нужно как-нибудь написать про это статью)
https://mol.hyoo.ru/#!section=bench/bench=runtype

Не такая уж и маленькая. И не столь уж быстрая.
А основная проблема эвала - он в некоторых контекстнх запрещён из соображения безопасности.
Скинь ссылку на бенчмарк
У тебя тришейкинг не работает. Если кому-то нужен маленький размер, то он точно будет включён.
Ну и на моем телефоне перф в два раза больше чем мол дата. Что я считаю нормальным результатом.
Zod v4: Стал в 17 раз медленнее? (и почему это важно)