Official multi-platform integration testing and ecosystem CI for the Alya programming language.
This repository compiles the Alya compiler (against any branch or tag, default: develop), clones all 32 official Alya packages, and executes their test suites across Linux (ubuntu-latest), Windows (windows-latest), and macOS (macos-latest).
- Multi-OS Matrix: Verifies the full ecosystem on Linux, Windows, and macOS (Intel & Apple Silicon).
- Flexible Compiler Branching: Test the compiler on
develop,main, or any feature branch before releasing. - Selective Package Testing: Run tests for all 32 official packages or target a specific package (e.g.
json,http,crypto,term,mustache). - Rich GitHub Step Summary: Generates clear markdown reports with status tables and execution times for each package.
- Standalone & Cross-Platform: Single universal runner (
scripts/run_ecosystem_tests.py) working seamlessly across Windows, Linux, and macOS without requiring a monorepo setup.
| Package | Repository | Description |
|---|---|---|
cache |
alya-lang/cache |
High-performance in-memory cache with LRU/LFU/FIFO eviction, TTL expiry, hooks, snapshots, and statistics for Alya |
cli |
alya-lang/cli |
Modern command-line interface, argument parsing, flag handling, and subcommand router |
compress |
alya-lang/compress |
10 compression modules + full LZ family (LZ4, LZ77, LZ78, LZJB, LZMA, LZMA2, LZSS, LZW), Huffman & ZIP archives |
crypto |
alya-lang/crypto |
Comprehensive cryptography, hashing (SHA-2/3, BLAKE2s, Keccak, HMAC), AEAD (ChaCha20-Poly1305), KDF, and encodings |
csv |
alya-lang/csv |
RFC-4180 compliant CSV and TSV parser, serializer, and data processor |
dotenv |
alya-lang/dotenv |
Environment variable (.env) parser, interpolation, and configuration loader |
event |
alya-lang/event |
High-throughput single-threaded reactor event loop, timers, and I/O multiplexer for Alya |
gui |
alya-lang/gui |
Native cross-platform GUI toolkit: windowing, widgets, layout, and 2D canvas for Alya |
http |
alya-lang/http |
Production-ready HTTP client, server, router, compression, and middleware toolkit |
i18n |
alya-lang/i18n |
Lightweight internationalization: locale bundles, gettext-style .tr and JSON loaders, CLDR-lite plurals |
json |
alya-lang/json |
RFC 8259 JSON parser, recursive serializer, JSONPath, JSON Schema validator, NDJSON, and builder |
jwt |
alya-lang/jwt |
Native RFC 7519 JSON Web Token library with HMAC-SHA256 and fluent builder |
logger |
alya-lang/logger |
Structured logging, leveled output, JSON format, and file rotation |
math |
alya-lang/math |
Comprehensive mathematics for Alya (big integers, rationals, number theory, primes, combinatorics, complex numbers, matrices, polynomials) |
mime |
alya-lang/mime |
MIME type and media type detection library |
mustache |
alya-lang/mustache |
Fast, zero-dependency Mustache template engine (variables, sections, partials, HTML escaping) |
rand |
alya-lang/rand |
Modern pseudo-random number generator (PRNG), statistical distributions, and sampling toolkit |
regex |
alya-lang/regex |
High-performance regular expression engine with named groups, lookarounds, and global multilingual Unicode support |
semver |
alya-lang/semver |
Semantic Versioning (SemVer 2.0.0) parser, comparator, bumper, and range checker |
sqlite |
alya-lang/sqlite |
Fast and lightweight SQLite3 bindings with bundled C engine (zero external dependencies) |
sysinfo |
alya-lang/sysinfo |
Cross-platform system information: OS, CPU, memory, disk, host, timezone, power, process, env, load, and locale for Alya |
template |
alya-lang/template |
Official template repository for all future Alya packages (GitHub Template enabled) |
tensor |
alya-lang/tensor |
N-dimensional tensor engine with multi-dtype storage, broadcasting, and GPU acceleration (CUDA/Metal/OpenCL) |
term |
alya-lang/term |
Modern terminal UI toolkit: ANSI styling, tables, callouts, trees, progress bars, charts, prompts, cursor controls |
tls |
alya-lang/tls |
Native TLS and SSL client, server, certificate verification and secure networking toolkit for Alya |
toml |
alya-lang/toml |
TOML v1.0.0 parser, serializer, and TomlBuilder API |
tz |
alya-lang/tz |
IANA timezone database and zone-aware datetime conversion for Alya |
url |
alya-lang/url |
WHATWG and RFC 3986 compliant URL parser, serializer, normalizer, and query string library |
uuid |
alya-lang/uuid |
RFC 4122 UUID v4, RFC 9562 UUID v7, ULID, and NanoID toolkit |
uv |
alya-lang/uv |
High-performance OS kernel I/O multiplexing (epoll, WSAPoll, kqueue) and asynchronous event engine for Alya |
xml |
alya-lang/xml |
Fast, zero-dependency XML 1.0 parser and serializer for Alya |
yaml |
alya-lang/yaml |
Fast, zero-dependency YAML 1.2 parser and serializer |
Go to Actions -> Ecosystem CI -> Run workflow:
- Compiler branch / ref:
develop(or any feature branch/tag) - Packages:
ALL(or comma-separated:http,json,crypto) - Run compiler tests:
true - Sequential:
false(settrueto force sequential test execution) - Jobs: Parallel worker count per package (e.g.
2,4; default: CPU cores)
The test suite runs automatically every night at 02:00 UTC against the latest develop branch of the compiler and main of all packages.
The ecosystem test suite is fully standalone and runs seamlessly across Windows, macOS, and Linux using a single cross-platform Python runner:
# 1. Run full test suite (builds compiler, runs compiler cargo tests, tests all 32 packages in parallel):
python scripts/run_ecosystem_tests.py
# 2. Test specific packages only:
python scripts/run_ecosystem_tests.py --packages "json,http,rand"
# 3. Test a custom compiler branch or tag:
python scripts/run_ecosystem_tests.py --compiler-branch my-feature-branch
# 4. Skip compiler unit tests and test packages directly:
python scripts/run_ecosystem_tests.py --skip-compiler-tests
# 5. Run tests sequentially (alya test --sequential):
python scripts/run_ecosystem_tests.py --sequential
# 6. Specify worker thread count (alya test -j 4):
python scripts/run_ecosystem_tests.py --jobs 4
# 7. Custom per-package timeout (default: 300s):
python scripts/run_ecosystem_tests.py --timeout 180- 100% Standalone & Universal: The runner is completely self-contained. It clones the compiler (
alya-lang/alya) and packages directly into an isolated localworkspace/folder. - Custom Local Paths (Optional): If you want to test against specific local directories, simply pass
--compiler-dir <path>or--packages-dir <path>. - Automatic Toolchain Provisioning: Sets
ALYA_TOOLCHAIN_AUTO_INSTALL=1and automatically configures minimal C/Assembly build tools if no host GCC or Clang is detected inPATH.
Verify that all official ecosystem packages follow the canonical template standard (required files, exact README headings/badges, alya.toml spec, zero hardcoded version functions, zero legacy aliases, and pure English):
# Verify compliance for all packages:
python scripts/check_template_compliance.py
# Verify compliance for specific packages:
python scripts/check_template_compliance.py --packages "json,http,rand"This test suite is open source under the MIT License.