Una biblioteca header-only para C++11 que permite analizar, crear, manipular y serializar JSON con una sintaxis similar a la de STL.
simdjson/simdjson
Un parser JSON para C++ que usa instrucciones SIMD para procesar gigabytes de JSON por segundo con validación completa.
- Estrellas
- 24,444
- Forks
- 1,321
- Issues abiertos
- 73
- Último commit
- hace 5 horas
¿Qué es?
simdjson es una biblioteca de C++ para analizar JSON. Usa instrucciones SIMD de disponibilidad general y algoritmos paralelos para procesar datos rápidamente, y realiza una validación completa de JSON y UTF-8 durante el análisis.
La biblioteca selecciona en tiempo de ejecución un parser específico para la CPU, así que no es necesario configurarla. Su API On-Demand analiza solo las partes del documento que lee el programa y permite acceder mediante JSON Pointer. El proyecto también incluye la minificación de JSON, la validación de UTF-8, el procesamiento multiproceso de NDJSON y la serialización de JSON mediante un builder.
Se distribuye como un único archivo de cabecera y un archivo fuente, y es compatible con x64, ARM64 y LoongArch. Hay bindings y ports para Python, Rust, Go, Java, C#, Node.js y varios otros lenguajes.
Funciones clave
- 01Analiza JSON con instrucciones SIMD y selecciona en tiempo de ejecución una implementación adaptada a la CPU.
- 02Realiza una validación completa de JSON y UTF-8 con análisis sin pérdida de datos.
- 03Ofrece una API On-Demand que lee solo los campos que necesita el programa.
- 04Admite el acceso mediante JSON Pointer, la minificación y el análisis multiproceso de NDJSON.
- 05Se puede integrar usando un único archivo de cabecera y un archivo fuente.
Casos de uso
- Analizar grandes cargas útiles de JSON en servidores C++ o pipelines de datos de alto rendimiento.
- Procesar archivos de logs o eventos en formato NDJSON a gran velocidad.
- Convertir JSON a structs de C++ y viceversa mediante reflexión estática.
Inicio rápido
- 1
Descarga simdjson.h, simdjson.cpp y twitter.json con wget
wget https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.h https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.cpp https://raw.githubusercontent.com/simdjson/simdjson/master/jsonexamples/twitter.json - 2
Crea quickstart.cpp con el programa de ejemplo del README
- 3
Compila el programa con tu compilador de C++
c++ -o quickstart quickstart.cpp simdjson.cpp - 4
Ejecuta el programa
./quickstart
Antes de usarlo
- Se necesita un compilador de C++, como g++ 7+ o clang++ 6+, en un sistema de 64 bits.
- La guía de inicio rápido requiere descargar y compilar manualmente; otras plataformas, como Visual Studio o Xcode, necesitan pasos distintos.
Temas
Preguntas frecuentes
- ¿Qué es simdjson?
- Un parser JSON para C++ que usa instrucciones SIMD para procesar gigabytes de JSON por segundo con validación completa. simdjson es una biblioteca de C++ para analizar JSON. Usa instrucciones SIMD de disponibilidad general y algoritmos paralelos para procesar datos rápidamente, y realiza una validación completa de JSON y UTF-8 durante el análisis.
- ¿simdjson es gratuito? ¿Qué licencia tiene?
- simdjson es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿simdjson sigue mantenido?
- Mantenimiento activo. El último commit de simdjson fue el 21 oct 2026.
- ¿Para qué puedo usar simdjson?
- Analizar grandes cargas útiles de JSON en servidores C++ o pipelines de datos de alto rendimiento. Procesar archivos de logs o eventos en formato NDJSON a gran velocidad. Convertir JSON a structs de C++ y viceversa mediante reflexión estática.
- ¿Cómo se instala simdjson?
- Descarga simdjson.h, simdjson.cpp y twitter.json con wget: wget https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.h https://raw.githubusercontent.com/simdjson/simdjson/master/singleheader/simdjson.cpp https://raw.githubusercontent.com/simdjson/simdjson/master/jsonexamples/twitter.json Crea quickstart.cpp con el programa de ejemplo del README Compila el programa con tu compilador de C++: c++ -o quickstart quickstart.cpp simdjson.cpp Ejecuta el programa: ./quickstart
- ¿Dónde consigo simdjson?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/simdjson/simdjson
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una biblioteca de formato para C++ rápida y segura en cuanto a tipos, alternativa a C stdio e iostreams, que implementa std::format de C++20.
Una biblioteca de serialización multiplataforma que permite leer datos binarios directamente, sin analizarlos ni desempaquetarlos antes.
Colección modular de tecnologías para compiladores y cadenas de herramientas, que incluye el núcleo de LLVM, el frontend Clang para C/C++, libc++ y el linker LLD.
Parser y compilador de Markdown rápido y de bajo nivel para JavaScript, compatible con navegadores, Node.js y la línea de comandos.
Un compilador y parser de TypeScript y JavaScript escrito en Rust, muy rápido y utilizable desde Rust y JavaScript.