mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 20:15:34 +00:00
* dart test scripts - generate with `--gen-object-api` * Dart object API, pack and unpack methods (WIP) * Dart flatc - extract Builder code to separate functions to reuse it in Pack() * Dart flatc - use builder field-building implementation in pack() * Dart flatc - add pack() as an intance method of the "T" class * Dart object API - make inner fields unpacked as well * Dart object API - use pack() when collecting field offsets * Dart object API - use packOnce() for fields that are structs or vectors of structs * Dart object API - remove obsolete union support TODO * Dart object API - minor review changes, test and fixes * Dart object API - revert packOnce() - not supported by other object API implementations * Dart object API - update docs * update dart generated code in tests/ to fix CI failure on ./scripts/check-generated-code.sh * Dart flatc - fix compilation for old MSVC and c++0x
3.9 KiB
3.9 KiB
Platform / Language / Feature support
FlatBuffers is actively being worked on, which means that certain platform / language / feature combinations may not be available yet.
This page tries to track those issues, to make informed decisions easier. In general:
- Languages: language support beyond the ones created by the original FlatBuffer authors typically depends on community contributions.
- Features: C++ was the first language supported, since our original target was high performance game development. It thus has the richest feature set, and is likely most robust. Other languages are catching up however.
- Platforms: All language implementations are typically portable to most platforms, unless where noted otherwise.
NOTE: this table is a start, it needs to be extended.
| Feature | C++ | Java | C# | Go | Python | JS | TS | C | PHP | Dart | Lobster | Rust | Swift |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Codegen for all basic features | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | WiP | Yes | Yes | Yes | Yes |
| JSON parsing | Yes | No | No | No | No | No | No | Yes | No | No | Yes | No | No |
| Simple mutation | Yes | Yes | Yes | Yes | No | No | No | No | No | No | No | No | Yes |
| Reflection | Yes | No | No | No | No | No | No | Basic | No | No | No | No | No |
| Buffer verifier | Yes | No | No | No | No | No | No | Yes | No | No | No | No | No |
| Native Object API | Yes | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No |
| Optional Scalars | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes |
| Flexbuffers | Yes | Yes | ? | ? | ? | ? | ? | ? | ? | ? | ? | Yes | ? |
| Testing: basic | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | Yes |
| Testing: fuzz | Yes | No | No | Yes | Yes | No | No | No | ? | No | No | Yes | No |
| Performance: | Superb | Great | Great | Great | Ok | ? | ? | Superb | ? | ? | Great | Superb | Great |
| Platform: Windows | VS2010 | Yes | Yes | ? | ? | ? | Yes | VS2010 | ? | Yes | Yes | Yes | No |
| Platform: Linux | GCC282 | Yes | ? | Yes | Yes | ? | Yes | Yes | ? | Yes | Yes | Yes | Yes |
| Platform: OS X | Xcode4 | ? | ? | ? | Yes | ? | Yes | Yes | ? | Yes | Yes | Yes | Yes |
| Platform: Android | NDK10d | Yes | ? | ? | ? | ? | ? | ? | ? | Flutter | Yes | ? | No |
| Platform: iOS | ? | ? | ? | ? | ? | ? | ? | ? | ? | Flutter | Yes | ? | Yes |
| Engine: Unity | ? | ? | Yes | ? | ? | ? | ? | ? | ? | ? | No | ? | No |
| Primary authors (github) | aard | aard | ev/js/df | rw | rw | ew/ev | kr | mik | ch | df | aard | rw/cn | mi/mz |
| Above | Github username |
|---|---|
| aard | aardappel (previously: gwvo) |
| ch | chobie |
| cn | caspern |
| df | dnfield |
| ev | evolutional |
| ew | evanw |
| js | jonsimantov |
| kr | krojew |
| mi | mustiikhalil |
| mik | mikkelfj |
| mz | mzaks |
| rw | rw |