Skip to content

Provide a streaming executor #47

Closed as not planned
Closed as not planned

Description

@Mearman

The executor is pure and synchronous over whole in-memory documents.

Decision: decline. encode and decode take a parsed JSON value, so by the time a caller has one the whole document is already in memory; a streaming executor would need a streaming JSON tokenizer and an incremental writer inside a platform-neutral library. The rules themselves are not stream-safe in general: a when reads arbitrary paths of the governing document (including later fields and collections), fixed indices and one-feeder arrays need the array's length, and the gap and conflict checks run over the finished output. A sequence of records (NDJSON, one document per line) already streams by calling encode per record, which needs nothing from the library.

Revisit when a single document does not fit in memory, starting from a stream-safe subset (wildcard-aligned rules whose when reads only the current element) behind a separate entry point.

The README reason for this omission is updated in #56.

Activity

  1. added
    enhancementNew feature or request
    deferredDeliberately not built yet, with a trigger for revisiting
    on Oct 20, 2026
  2. added theissue type on Oct 20, 2026
  3. Mearman commented on Oct 21, 2026

    @Mearman
    MemberAuthor

    Declined as recorded: the rules are not stream-safe in general and NDJSON already streams per record. Revisit condition stays in the body.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    deferredDeliberately not built yet, with a trigger for revisitingenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions