Skip to content

Aestra 0.1.0-beta

Pre-release
Pre-release

Choose a tag to compare

@Elitsuv Elitsuv released this 10 Sep 16:38
· 46 commits to main since this release

Aestra v0.1.0-beta

Initial public beta release of Aestra: a deterministic execution sandbox and testing engine for competitive programming and automated grading.

Highlights

  • Hardware-Level Sandboxing: Kernel-level CPU and RAM limits using POSIX setrlimit (RLIMIT_CPU, RLIMIT_AS) with microsecond wait4 telemetry.
  • PyO3 FFI Core: Rust CPython module (aestra_core) exposing zero-overhead native execution.
  • Adaptive Fallback Engine: Automatic runtime selection—uses NativeEngine on Linux/POSIX, falls back to SubprocessEngine on Windows and non-Rust environments.
  • ICPC-Grade Differential Checker: Support for TOKEN, EXACT, and IGNORE_WHITESPACE comparison modes.
  • Batch Test Runner & CLI: Automated .in/.out test discovery, verdict evaluation (OK, WA, TLE, MLE, RE), and terminal command interface with ANSI telemetry badges.

Features & Enhancements

Core Engine & Sandboxing

  • Implement POSIX kernel sandbox using fork, execve, and setrlimit (#13, #14)
  • Expose native execution to Python via PyO3 C-bindings (#12, #13)
  • Implement NativeEngine wrapper interfacing with aestra_core (#15)
  • Implement SubprocessEngine cross-platform fallback for non-Rust environments (#16)
  • Define frozen ExecutionLimits and typed ExecutionResult domain models (#6)

Testing & CLI

  • Add batch test runner engine with recursive case discovery and verdict aggregation (#17, #19)
  • Add multi-mode output checker with whitespace-delimited token comparisons (#14)
  • Add production terminal CLI supporting run and test subcommands (#18, #19)
  • Consolidate unified test suite in tests/test.py (13/13 passing)

Infrastructure & Documentation

  • Multi-OS GitHub Actions CI matrix with Ruff lint/format, Mypy typing, and Rust test targets (#12)
  • Add zero-dependency installation scripts for POSIX Bash and Windows PowerShell (#16)
  • Launch complete technical documentation portal at https://elitsuv.github.io/aestra/

Bug Fixes & Polish

  • Ensure explicit string casting in ExecutionStatus.__str__ (#11)
  • Remove shebang in label script to satisfy Ruff EXE001 rule
  • Remove redundant title fields in GitHub issue templates
  • Relocate static logo assets to docs/assets/ for GitHub Pages hosting

Breaking Changes

  • None (initial public beta release).

Full Changelog: https://github.com/Elitsuv/aestra/commits/0.1.0-beta