Add streaming parser for large message handling #203
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.
Summary
Implements a streaming parser API for both Rust and JavaScript implementations of links-notation, addressing #197. This enables incremental parsing of Links Notation data, which is essential for handling large messages without loading everything into memory.
Features
Rust Implementation (
rust/src/stream_parser.rs)Sendtrait boundsJavaScript Implementation (
js/src/StreamParser.js)Use Cases
Examples
Rust Example
JavaScript Example
Documentation
rust/README.mdwith streaming parser section and API referencejs/README.mdwith streaming parser section and API referenceexamples/rust_streaming_parser.rs- 7 examples demonstrating various use casesexamples/js_streaming_parser.js- 6 examples showing streaming capabilitiesTesting
Implementation Details
Rust
parse_documentfunction fromparsermoduleLinkrepresentation to publicLiNotypeSendboundJavaScript
Related Issues
Fixes #197
This implementation directly addresses the needs outlined in the issue for:
🤖 This PR was developed with AI assistance