feat(parser/napi): add flexbuffer to AST transfer (2x speedup) #1680
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.
Hi! I have created a proof of concept of improving using oxc in JavaScript. The method is not polished but it provides valuable insights for future direction!
Feel free to close~ It is for reference only :)
Context
This is a proof of concept implementation of passing binary AST to JavaScript. JavaScript can selectively read flexbuffers-based AST nodes on demand to avoid the deserialization toll. More context here.
Changes
parseSyncBuffer
napi method to return a binary AST from Rust to JavaScript. The AST is in flexbuffer format.test_buffer.js
to test usage of flexbuffers in JavaScript. It is in cjs format because flexbuffers does not support ESM :/Result
Some preliminary results, for reference only.
Buffer based API is 100% faster than JSON.
Future Ideas