[Swift] Flexbuffers native swift port#8577
Merged
mustiikhalil merged 4 commits intogoogle:masterfrom Jun 22, 2025
Merged
Conversation
f223d8b to
83b87aa
Compare
d5cf1d2 to
5b2ff18
Compare
5b2ff18 to
d74812f
Compare
aardappel
previously approved these changes
Jun 14, 2025
Collaborator
There was a problem hiding this comment.
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.
Collaborator
Author
|
@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
mustiikhalil
commented
Jun 15, 2025
aardappel
approved these changes
Jun 15, 2025
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
dongjoon-hyun
added a commit
to apache/spark-connect-swift
that referenced
this pull request
Oct 28, 2025
### 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]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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: