-
Notifications
You must be signed in to change notification settings - Fork 3.4k
[Swift] Flexbuffers native swift port #8577
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
f223d8b to
83b87aa
Compare
d5cf1d2 to
5b2ff18
Compare
5b2ff18 to
d74812f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Though I don't know Swift and haven't reviewed this in detail, it appears to follow the C++ implementation closely, has tests and otherwise looks good.. I'm fine for this to go in once @mustiikhalil is happy with it.
|
@aardappel I tried to keep it as close to cpp as possible! I'm quite happy with the implementation and also the performance of the library. Benchmarks can be found here and they compare flexbuffers to the native swift JSON decoder and encoder. Only difference the swift lib has, is that it's more strongly typed, so for example if the user calls |
04bf1ef to
5f69992
Compare
This is the offical port for FlexBuffers within swift, and it introcudes a Common Module where code is shared between flatbuffers and flexbuffers. Writing most supported values like maps, vectors, nil and scalars into a flexbuffer buffer. And includes tests to verify that its similar to cpp
Implementing reading from a flexbuffer, enabling most of the buffers features, like most types, maps, vectors, typedvectors, and fixedtypedvectors. Currently, if an offset/object cant be read we default to a swift nil instead of the default flexbuffers 'null' with all values.
Address warnings within the library
b99b278 to
f740586
Compare
### What changes were proposed in this pull request? This PR aims to upgrade `FlatBuffers` to `v25.9.23` ### Why are the changes needed? To bring the latest bug fixes and improvements like `Windows` support. - https://github.com/google/flatbuffers/releases/tag/v25.9.23 (2025-09-23) - google/flatbuffers#8484 - google/flatbuffers#8577 - google/flatbuffers#8622 - google/flatbuffers#8637 - google/flatbuffers#8643 - google/flatbuffers#8650 - google/flatbuffers#8649 - google/flatbuffers#8702 ### Does this PR introduce _any_ user-facing change? No. There is no behavior change. ### How was this patch tested? Pass the CIs. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #254 from dongjoon-hyun/SPARK-54045. Authored-by: Dongjoon Hyun <[email protected]> Signed-off-by: Dongjoon Hyun <[email protected]>
The following PR brings the basic port of flexbuffers, that allows the user to read and write flexbuffer objects and covert them into JSON if needed.
The current implementation supports the following
nil instead of the default Flexbuffers 'null' with all values.
What's missing: