Developing Qwiratry

Notes for contributors and people working on Qwiratry itself

=begin rakudoc

Overview

This document collects the README material that is mainly useful when developing Qwiratry rather than simply using it.

Source Installation

Install from a checkout when working on Qwiratry itself:

git clone <repository-url>
cd raku-Qwiratry
zef install .

Qwiratry currently needs RakuAST support when running:

export RAKUDO_RAKUAST=1

Architecture

Qwiratry is built around five core architectural groups:

  • Query group: declarative, immutable query specifications; this is what to find.

  • Walker group: traversal strategies and execution plans; this is how to walk the data.

  • Strategy group: element-level behavior and reusable processing logic.

  • Transformer group: declarative data transformations using molds.

  • Per-traversal group: mutable state management with Context and incremental result streaming with QueryIterator.

The architecture enables:

  • Multiple traversal strategies for the same query.

  • Query optimization before execution.

  • Streaming results via lazy iterators.

  • Composite execution across multiple domains.

  • Pluggable strategies for element processing.

Requirements

  • Raku 6.e or later.

  • Slangify.

  • Implementation::Loader v0.0.7 or later.

  • RAKUDO_RAKUAST=1 in the environment.

Testing

Run the test suite with zef from the repository root:

zef test .

Developer Documentation

  • Specification: complete architecture specification.

  • Operators: query operator reference.

  • kitty-specs/: detailed feature specifications and design documents.

  • t/examples/: example code and usage patterns.

  • Extending Qwiratry: extension guides for formats, locations, walkers, strategies, transformers, and other extension points.

  • Required Raku Modifications: possible Raku language and runtime changes that would better support data-oriented programming.

  • Streaming Qwiratry Proposal: proposed interfaces for streaming-capable parsers, renderers, sources, and destinations.

  • Qwiratry TOP Plan: design note for rebuilding Raku TOP on Qwiratry.

  • Qwiratry TOP Prerequisites: normative spec for streaming-shaped Location I/O (Source/Destination on tables), Relation, and anonymous Tables (plan ยง4.1โ€“4.2).

  • Changelog: user-visible changes by release.

  • Release Process: prep, fez publishing, and GitHub release steps.

=end rakudoc

Qwiratry v0.0.9

Declarative query and data-walking architecture for Raku, with transformers, molds, walkers, and I/O pipelines.

Authors

  • Tim Nelson

License

Dependencies

SlangifyImplementation::Loader:ver<0.0.9+>Glob::Grammar

Test Dependencies

Provides

  • Qwiratry
  • Qwiratry::Context
  • Qwiratry::Format
  • Qwiratry::Format::Base
  • Qwiratry::Format::CSVdemo
  • Qwiratry::Format::JSONdemo
  • Qwiratry::Location
  • Qwiratry::Location::Base
  • Qwiratry::Location::File
  • Qwiratry::Mold
  • Qwiratry::Mold::Compiler
  • Qwiratry::Mold::Registry
  • Qwiratry::Mold::Slang
  • Qwiratry::Operator::Capability
  • Qwiratry::Operator::IO
  • Qwiratry::Operator::MapReduce
  • Qwiratry::Operator::Navigation
  • Qwiratry::Operator::Set
  • Qwiratry::Query::Evaluator::Eager
  • Qwiratry::Query::Evaluator::Filter
  • Qwiratry::Query::Evaluator::Join
  • Qwiratry::Query::Evaluator::Lazy
  • Qwiratry::Query::Evaluator::MapReduce
  • Qwiratry::Query::Evaluator::Navigation
  • Qwiratry::Query::Evaluator::Relational
  • Qwiratry::Query::Evaluator::Row
  • Qwiratry::Query::Evaluator::Set
  • Qwiratry::Query::Evaluator::Union
  • Qwiratry::Query::Extract
  • Qwiratry::Query::NamedJoins
  • Qwiratry::Query::RelationCommon
  • Qwiratry::Query::Runtime
  • Qwiratry::Query::Selector
  • Qwiratry::Query::Slang
  • Qwiratry::Query::Specificity
  • Qwiratry::Query::Topic
  • Qwiratry::QueryIterator
  • Qwiratry::QueryMatch
  • Qwiratry::Setup
  • Qwiratry::Strategy
  • Qwiratry::Strategy::ControlSignal
  • Qwiratry::Strategy::FinishResult
  • Qwiratry::Strategy::RewriteSpec
  • Qwiratry::Strategy::Traversal
  • Qwiratry::Suggest
  • Qwiratry::Table
  • Qwiratry::Table::Schema
  • Qwiratry::Transformer
  • Qwiratry::Transformer::Copy
  • Qwiratry::Transformer::TreeRewrite
  • Qwiratry::Tree::Navigator
  • Qwiratry::Tree::Navigator::Base
  • Qwiratry::Tree::Navigator::Filesystem
  • Qwiratry::Tree::Navigator::Match
  • Qwiratry::Tree::Navigator::RakuAST
  • Qwiratry::Tree::Replace
  • Qwiratry::Walker
  • Qwiratry::Walker::Capabilities
  • Qwiratry::Walker::Factory
  • Qwiratry::Walker::Implementation::Table
  • Qwiratry::Walker::Implementation::Tree
  • Qwiratry::Walker::Master
  • Qwiratry::Walker::Providing
  • X::Qwiratry

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.