FlatBuffers es una biblioteca de software libre que implementa un formato de serialización similar a Protocol Buffers , Thrift , Apache Avro , SBE y Cap'n Proto . Fue escrita principalmente por Wouter van Oortmerssen y publicada como código abierto por Google . Admite la deserialización "sin copia", lo que significa que acceder a los datos serializados no requiere copiarlos previamente en una parte separada de la memoria. Esto hace que el acceso a los datos en estos formatos sea mucho más rápido que en formatos que requieren un procesamiento más extenso, como JSON , CSV y, en muchos casos, Protocol Buffers. Sin embargo, en comparación con otros formatos de serialización, el manejo de FlatBuffers generalmente requiere más código y algunas operaciones no son posibles (como ciertas operaciones de mutación).
El formato serializado permite el acceso aleatorio a elementos de datos específicos (por ejemplo, propiedades individuales de cadena o entero) sin analizar todos los datos. [ 3 ] A diferencia de Protocol Buffers, que utiliza enteros de longitud variable , FlatBuffers codifica los enteros en su tamaño nativo, lo que favorece el rendimiento pero da lugar a representaciones codificadas más largas.
FlatBuffers se puede usar en software escrito en C++ , C# , C , Go , Java , JavaScript , Kotlin , Lobster, Lua , PHP , Python , Rust , Swift y TypeScript . El compilador de esquemas se ejecuta en Android , Microsoft Windows , macOS y Linux , pero los juegos y otros programas también usan FlatBuffers para el trabajo de serialización en muchos otros sistemas operativos, incluidos iOS , Fire OS de Amazon y Windows Phone . [ 4 ] [ 5 ]
Van Oortmerssen desarrolló originalmente FlatBuffers para el desarrollo de juegos y aplicaciones similares. [ 6 ] [ 1 ]
Aunque FlatBuffers tiene su propio lenguaje de definición de interfaz para definir los datos que se serializarán con él, también admite esquemas definidos en el formato .proto de Protocol Buffers. [ 7 ]
Usuarios
Algunos usuarios destacados de FlatBuffers:
- Cocos2d-x , la popular biblioteca de programación de juegos 2D de software libre, utiliza FlatBuffers para serializar todos sus datos de juego. [ 8 ]
- El cliente de Facebook para Android utiliza FlatBuffers para el almacenamiento en disco y la comunicación con los servidores de Facebook. El formato JSON utilizado anteriormente tenía un rendimiento deficiente. [ 9 ]
Véase también
Referencias
- ^ Wouter van Oortmerssen (17 de junio de 2014) . "FlatBuffers: una biblioteca de serialización con uso eficiente de la memoria" . Consultado el 15 de junio de 2017 .
- ↑ "Lanzamiento 25.12.19" . 19 de diciembre de 2025. Consultado el 7 de abril de 2026 .
- ↑ "FlatBuffers Internals" . flatbuffers.dev . Google . Consultado el 2 de julio de 2026 .
- ↑ "GitHub — google/flatbuffers: Biblioteca de serialización eficiente en memoria" . GitHub . Consultado el 10 de diciembre de 2020 .
- ↑ "FlatBuffers para Unity" . eXiin. 21 de septiembre de 2015. Consultado el 15 de junio de 2017. Probamos
flatbuffers en todas las principales plataformas móviles (iOS, Android, Amazon OS, Windows Phone) en las que estamos desarrollando y funciona bastante bien.
- ↑ "Documentación de FlatBuffers" . Consultado el 21 de junio de 2017.
FlatBuffers es una biblioteca de serialización multiplataforma eficiente para C++, C#, C, Go, Java, JavaScript, PHP y Python. Fue creada originalmente en Google para el desarrollo de videojuegos y otras aplicaciones que requieren un alto rendimiento.
- ↑ Kenton Varda (17 de junio de 2014). "Cap'n Proto, FlatBuffers y SBE" . Consultado el 15 de junio de 2017 .
- ↑ "Cocos2d-x: Referencia del espacio de nombres de Flatbuffers" .
- ↑ George Xie (31/07/2015). "Mejorando el rendimiento de Facebook en Android con FlatBuffers" . Consultado el 15/06/2017 .
El tiempo de carga de historias desde la caché de disco se reduce de 35 ms a 4 ms por historia. Las asignaciones de memoria transitoria se reducen en un 75 por ciento. El tiempo de arranque en frío mejora entre un 10 y un 15 por ciento. Hemos reducido el tamaño de almacenamiento en un 15 por ciento.
- formatos de serialización de datos
- Software de Google
- Software de 2014