Transformer de TypeScript que compila tipos puros de TypeScript en validadores en tiempo de ejecución, serializadores JSON, codecs de Protocol Buffers y generadores aleatorios.
DZakh/sury
Biblioteca de esquemas para TypeScript y ReScript que valida, analiza y codifica datos desde una sola declaración en formatos como JSON, formularios y Protobuf.
- Estrellas
- 494
- Forks
- 15
- Issues abiertos
- 18
- Último commit
- hace 3 días
¿Qué es?
Sury es una biblioteca de esquemas para TypeScript y ReScript. Declaras un modelo de datos una sola vez y usas el mismo esquema para analizar entradas no confiables y convertirlas en valores tipados, volver a codificar los valores tipados en un formato de transferencia e inferir tipos de TypeScript a partir de la declaración. Los esquemas se pueden encadenar para que un formato de transferencia, como una cadena base64url o un texto JSON, funcione como una etapa de la canalización entre la entrada sin procesar y el modelo.
La biblioteca incluye formatos de transferencia integrados para JSON, cadenas JSON, datos de formularios, variables de entorno, parámetros de búsqueda de URL, base64, Uint8Array, Protobuf, File y Blob. Los esquemas Protobuf no necesitan archivos .proto ni generación de código, y pueden generar uno para otros consumidores. Los esquemas también implementan Standard Schema y Standard JSON Schema, y JSON Schema se puede convertir en ambas direcciones.
El proyecto genera funciones de JavaScript especializadas para cada esquema en tiempo de ejecución, con el objetivo de ofrecer mayor velocidad. Entre las operaciones disponibles para un esquema están parse, encode, las comprobaciones de constructor, la igualdad y la comparación. Cada una tiene variantes síncronas, basadas en Promise y que devuelven Result.
Funciones clave
- 01Analiza y codifica datos a partir de una sola declaración de esquema, con tipos de TypeScript inferidos.
- 02Incluye formatos de transferencia integrados para cadenas JSON, datos de formularios, variables de entorno, Protobuf, base64 y File/Blob.
- 03Es compatible con Standard Schema, por lo que se integra con tRPC, Hono y otras bibliotecas compatibles.
- 04Convierte desde y hacia JSON Schema, y genera definiciones .proto a partir de esquemas Protobuf.
- 05Informa de todos los problemas de validación junto con su ruta y genera errores para los valores que JSON.stringify corrompería sin avisar.
Casos de uso
- Validar los cuerpos de solicitudes y respuestas de API en un backend o cliente de TypeScript.
- Analizar y crear envíos de formularios multipart con campos y archivos tipados.
- Leer variables de entorno y convertirlas en una configuración tipada con valores predeterminados y validación.
- Codificar y decodificar mensajes Protobuf sin mantener código generado.
Inicio rápido
- 1
Instala el paquete desde npm
npm install sury - 2
Importa la biblioteca en tu código TypeScript y declara un esquema
Antes de usarlo
- Se indica que varios formatos de wire, como S.request, S.response, S.capnp, S.rkyv y S.toon, llegarán próximamente y aún no están disponibles.
- La importación de JSON Schema supera aproximadamente el 93 % de la suite de pruebas oficial de draft-07, por lo que es posible que algunos esquemas no se conviertan por completo.
Temas
Preguntas frecuentes
- ¿Qué es sury?
- Biblioteca de esquemas para TypeScript y ReScript que valida, analiza y codifica datos desde una sola declaración en formatos como JSON, formularios y Protobuf. Sury es una biblioteca de esquemas para TypeScript y ReScript. Declaras un modelo de datos una sola vez y usas el mismo esquema para analizar entradas no confiables y convertirlas en valores tipados, volver a codificar los valores tipados en un formato de transferencia e inferir tipos de TypeScript a partir de la declaración. Los esquemas se pueden encadenar para que un formato de transferencia, como una cadena base64url o un texto JSON, funcione como una etapa de la canalización entre la entrada sin procesar y el modelo.
- ¿sury es gratuito? ¿Qué licencia tiene?
- sury es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿sury sigue mantenido?
- Mantenimiento activo. El último commit de sury fue el 5 nov 2026.
- ¿Para qué puedo usar sury?
- Validar los cuerpos de solicitudes y respuestas de API en un backend o cliente de TypeScript. Analizar y crear envíos de formularios multipart con campos y archivos tipados. Leer variables de entorno y convertirlas en una configuración tipada con valores predeterminados y validación. Codificar y decodificar mensajes Protobuf sin mantener código generado.
- ¿Cómo se instala sury?
- Instala el paquete desde npm: npm install sury Importa la biblioteca en tu código TypeScript y declara un esquema
- ¿Dónde consigo sury?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/DZakh/sury
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de validación de datos para Python que usa anotaciones de tipos para analizar y validar datos, con un núcleo basado en Rust.
Framework de esquemas JSON estandarizado y servidor para describir las capacidades, habilidades, dominios y metadatos de agentes de IA, y así validarlos y descubrirlos.
Una biblioteca rápida de serialización y validación para Python que codifica y decodifica JSON, MessagePack, YAML y TOML mediante anotaciones de tipos estándar.
Componente web para ver y editar JSON con modos de árbol, código, texto y vista previa, integrable en tu propia aplicación web.
Genera modelos con tipado fuerte y serializadores en muchos lenguajes a partir de JSON, JSON Schema, TypeScript y consultas GraphQL.