Articulo de referencia

Búferes planos

"},"latest release version":{"wt":"{{wikidata|property|preferred|references|edit|P348|P548=Q2804309}}"},"latest release date":{"wt":"{{Start date and age|{{wikidata|qualifier|pr...

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

  1. ^ 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 .
  2. "Lanzamiento 25.12.19" . 19 de diciembre de 2025. Consultado el 7 de abril de 2026 .
  3. "FlatBuffers Internals" . flatbuffers.dev . Google . Consultado el 2 de julio de 2026 .
  4. "GitHub — google/flatbuffers: Biblioteca de serialización eficiente en memoria" . GitHub . Consultado el 10 de diciembre de 2020 .
  5. "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.
  6. "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.
  7. Kenton Varda (17 de junio de 2014). "Cap'n Proto, FlatBuffers y SBE" . Consultado el 15 de junio de 2017 .
  8. "Cocos2d-x: Referencia del espacio de nombres de Flatbuffers" .
  9. 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.
Obtenido de " https://en.wikipedia.org/w/index.php?title=FlatBuffers&oldid=1362207240 "