Buffers planos

Biblioteca de software de serialización multiplataforma
Buffers planos
Autor(es) original(es)Wouter van Oortmerssen
Desarrollador(es)Derek Bailey
Lanzamiento inicial17 de junio de 2014 ; hace 10 años [1] ( 17 de junio de 2014 )
Versión estable
24.3.25 [2]  / 26 de marzo de 2024 ; hace 6 meses ( 26 de marzo de 2024 )
Repositorio
  • github.com/google/flatbuffers
Escrito enC++
Sistema operativoAndroid , Microsoft Windows , Mac OS X , Linux
TipoFormato y biblioteca de serialización, compilador IDL
LicenciaLicencia Apache 2.0
Sitio webbúferes planos.dev

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 , escrita principalmente por Wouter van Oortmerssen y de código abierto por Google . Admite la deserialización de "copia cero", de modo que el acceso a los datos serializados no requiere copiarlos primero 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 a los datos 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 requiere generalmente más código y algunas operaciones no son posibles (como algunas operaciones de mutación).

El formato serializado permite el acceso aleatorio a elementos de datos específicos (por ejemplo, propiedades de cadenas individuales o enteros) sin analizar todos los datos. 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 utilizar 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 , [3] pero los juegos y otros programas también utilizan FlatBuffers para el trabajo de serialización en muchos otros sistemas operativos, incluidos iOS , Fire OS de Amazon y Windows Phone . [4]

Van Oortmerssen desarrolló originalmente FlatBuffers para el desarrollo de juegos y aplicaciones similares. [5] [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. [6]

Usuarios

Algunos usuarios destacados de FlatBuffers:

  • Cocos2d-x , la popular biblioteca de programación de juegos 2-D de software libre, utiliza FlatBuffers para serializar todos los datos de sus juegos. [7]
  • 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 no funcionaba bien. [8]

Véase también

Referencias

  1. ^ ab 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. ^ "Versión 24.3.25". 26 de marzo de 2024. Consultado el 23 de abril de 2024 .
  3. ^ "GitHub — google/flatbuffers: Biblioteca de serialización con uso eficiente de la memoria". GitHub . Consultado el 10 de diciembre de 2020 .
  4. ^ "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 trabajando y funciona bastante bien .
  5. ^ "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 juegos y otras aplicaciones críticas para el rendimiento.
  6. ^ Kenton Varda (17 de junio de 2014). "Cap'n Proto, FlatBuffers y SBE" . Consultado el 15 de junio de 2017 .
  7. ^ "Cocos2d-x: Referencia del espacio de nombres Flatbuffers".
  8. ^ George Xie (31 de julio de 2015). "Mejora del rendimiento de Facebook en Android con FlatBuffers" . Consultado el 15 de junio de 2017. El tiempo de carga de las historias desde la memoria caché del 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://es.wikipedia.org/w/index.php?title=FlatBuffers&oldid=1210067210"