Changes for version 0.04 - 2026-07-26
- Extend fast root continuation to single root object/abstract fields (#103)
- Drive on_stall from C, skip the response Promise::XS entirely (#104)
- Fix DataLoader Ticket cancellation leak, drive fallback on_stall from C too (#105)
- Pool LazyInfo ($info) structs to cut per-call allocator churn (#106)
- Extend Phase 7's raw frame linkage to suspending list items (#107)
- Fix two UTF8 flag loss bugs found while adding multibyte robustness tests (#108)
- Add regression tests for unverified multibyte/persistence paths (#109)
Changes for version 0.03_01 - 2026-07-25
- Apply argument defaults when referenced variables are omitted.
- Reject unknown resolver modes during schema compilation.
- Preserve DataLoader ticket all/race Promise compatibility.
- Speed up variable preparation and direct variable argument lookup.
- Add fast resolver ABIs for zero-, one-, and multiple-argument fields.
- Add explicit fast_resolve modes for reduced resolver callback signatures.
- Add zero-argument object accessors that bypass the generic resolver adapter.
- Cache accessor method lookup with subclass and redefinition invalidation.
Documentation
Modules
XS-backed GraphQL parser and execution toolkit for Perl
batching loader for GraphQL::Houtou resolvers
Directive definitions for GraphQL::Houtou
lightweight GraphQL error object
build an Apollo Federation 2 subgraph schema
Houtou-owned introspection types
GraphQL over HTTP endpoint as a plain PSGI app
request-time execution API on the XS VM
schema container for GraphQL::Houtou
Houtou-owned GraphQL type base class
GraphQL enum type
GraphQL input object type
GraphQL interface type
GraphQL list wrapper type
GraphQL non-null wrapper type
GraphQL object type
built-in and custom GraphQL scalars
GraphQL union type
GraphQL document validation facade
query depth limit validator
query field-count limit validator
Provides
in lib/GraphQL/Houtou/DataLoader.pm
in lib/GraphQL/Houtou/DataLoader.pm
in lib/GraphQL/Houtou/Internal/TypeSupport.pm
in lib/GraphQL/Houtou/XS/Parser.pm
in lib/GraphQL/Houtou/XS/Parser.pm
in lib/GraphQL/Houtou/XS/Parser.pm
in lib/GraphQL/Houtou/XS/Parser.pm
in lib/GraphQL/Houtou/XS/Parser.pm
in lib/GraphQL/Houtou/XS/Parser.pm
in lib/GraphQL/Houtou/Promise/PromiseXS.pm
in lib/GraphQL/Houtou/Role/Abstract.pm
in lib/GraphQL/Houtou/Role/Composite.pm
in lib/GraphQL/Houtou/Role/FieldDeprecation.pm
in lib/GraphQL/Houtou/Role/FieldsEither.pm
in lib/GraphQL/Houtou/Role/FieldsInput.pm
in lib/GraphQL/Houtou/Role/FieldsOutput.pm
in lib/GraphQL/Houtou/Role/HashMappable.pm
in lib/GraphQL/Houtou/Role/Input.pm
in lib/GraphQL/Houtou/Role/Leaf.pm
in lib/GraphQL/Houtou/Role/Named.pm
in lib/GraphQL/Houtou/Role/Output.pm
in lib/GraphQL/Houtou/Runtime/DirectiveRuntime.pm
in lib/GraphQL/Houtou/Runtime/ExecState.pm
in lib/GraphQL/Houtou/Runtime/InputCoercion.pm
in lib/GraphQL/Houtou/Runtime/LazyInfo.pm
in lib/GraphQL/Houtou/Runtime/OperationCompiler.pm
in lib/GraphQL/Houtou/Runtime/SchemaBlock.pm
in lib/GraphQL/Houtou/Runtime/SchemaGraph.pm
in lib/GraphQL/Houtou/Runtime/Slot.pm
in lib/GraphQL/Houtou/Runtime/VMBlock.pm
in lib/GraphQL/Houtou/Runtime/VMCompiler.pm
in lib/GraphQL/Houtou/Runtime/VMOp.pm
in lib/GraphQL/Houtou/Runtime/VMProgram.pm
in lib/GraphQL/Houtou/Runtime/VMProgram.pm
in lib/GraphQL/Houtou/XS/Parser.pm
Examples
- examples/cpanfile
- examples/cpanfile.snapshot
- examples/custom-directives.pl
- examples/persisted-queries.pl
- examples/sqlite-blog/README.md
- examples/sqlite-blog/app.psgi
- examples/sqlite-blog/cpanfile
- examples/sqlite-blog/cpanfile.snapshot
- examples/sqlite-blog/operations.graphql
- examples/sqlite-blog/public/index.html
- examples/sqlite-blog/schema.graphql
- examples/sqlite-blog/script/seed.pl
- examples/sqlite-blog/script/smoke.pl
- examples/sqlite-dataloader.psgi