Skip to content

Releases: paiml/depyler

v1.0.8

03 Aug 07:03

Choose a tag to compare

Full Changelog: v1.0.6...v1.0.8

v1.0.7

03 Aug 13:34

Choose a tag to compare

Full Changelog: v1.0.6...v1.0.7

v1.0.6

02 Aug 21:22

Choose a tag to compare

Full Changelog: v1.0.5...v1.0.6

v1.0.5

02 Aug 21:22

Choose a tag to compare

What's Changed

  • feat: Complete Protocol to Trait mapping with enhanced type system by @noahgift in #3

New Contributors

Full Changelog: v1.0.3...v1.0.5

v1.0.3

02 Aug 13:15

Choose a tag to compare

Full Changelog: v1.0.2...v1.0.3

v1.0.2 - Priority 2 String Optimizations

02 Aug 10:28

Choose a tag to compare

Summary

Enhanced string handling with intelligent optimization for memory efficiency.

Changes

  • 🧵 Enhanced string usage analysis with context-aware optimization
  • 🐄 Added Cow<str> support for flexible ownership scenarios
  • 📌 Implemented string interning for frequently used literals
  • 🔧 Fixed unnecessary .to_string() allocations
  • 🎯 Improved borrowing patterns for string parameters
  • ➕ Added string concatenation detection

Performance Improvements

  • Reduced string allocations by using &'static str for literals
  • String parameters now use &str when immutable
  • Frequently used strings (>3 occurrences) are interned as constants
  • Smarter ownership decisions based on usage patterns

Quality Metrics

  • ✅ 320 library tests passing
  • ✅ Zero clippy warnings
  • ✅ Zero technical debt markers
  • ✅ Toyota Way compliant

Installation

cargo install depyler

What's Next

  • Priority 3: Lifetime analysis enhancements
  • Cargo-focused README update
  • Advanced type system improvements

v1.0.1 - Priority 1 Critical Fixes

02 Aug 07:50

Choose a tag to compare

Summary

Zero-defect release implementing Priority 1 critical fixes for production quality.

Changes

  • Fixed all 12 SATD markers with actual implementations
  • Fixed all 6 incomplete implementations (unreachable! calls)
  • Removed panic sites from production code
  • Improved error handling throughout codebase

Quality Metrics

  • 320 library tests passing
  • Zero clippy warnings
  • Zero technical debt markers
  • Toyota Way compliant

Breaking Changes

None - all changes maintain backward compatibility

Installation

cargo install depyler

What's Next

  • Priority 2: String optimization improvements
  • Priority 3: Lifetime analysis enhancements
  • Cargo-focused README update

v0.3.1

07 Jul 04:34

Choose a tag to compare

Full Changelog: v0.3.0...v0.3.1

v0.3.0: Interactive Playground Release

06 Jun 18:57

Choose a tag to compare

Release Notes - Depyler v0.3.0

🎯 Release Highlights

Interactive Playground & Enterprise-Ready Quality Improvements

This major release introduces the Depyler Interactive Playground - a zero-configuration WebAssembly-powered environment for instant Python-to-Rust transpilation in your browser. Experience the power of energy-efficient computing with real-time feedback, intelligent code suggestions, and comprehensive performance metrics. Additionally, v0.3.0 brings significant quality improvements with enhanced error handling, better type inference, and production-ready CI/CD workflows.


✨ Major New Features

🚀 Interactive Playground

Transform Python to Rust instantly in your browser with our new WebAssembly-powered playground:

Zero-Configuration Experience

  • Instant Start: No installation required - just visit playground.depyler.io
  • WebAssembly Performance: Full transpiler running at near-native speed in your browser
  • Offline Capable: Works without internet connection after initial load
  • Smart Caching: Intelligent LRU caching for sub-50ms transpilation of previously seen code

Intelli-Sensei Code Intelligence

  • Real-time Suggestions: Get annotation hints as you type with context-aware recommendations
  • Anti-Pattern Detection: Automatic identification of Python patterns that don't transpile well
  • Type Inference Assistance: Smart suggestions for type annotations based on usage patterns
  • Optimization Opportunities: Highlights code sections that could benefit from Rust-specific optimizations

Side-by-Side Execution

  • Dual Runtime: Execute Python and transpiled Rust code side-by-side
  • Performance Comparison: Real-time metrics showing execution time, memory usage, and energy consumption
  • Semantic Verification: Automatic validation that Rust output matches Python behavior
  • Visual Energy Gauge: Interactive D3.js visualization of energy savings (up to 97% reduction)

Deep Dive Analysis

  • Three-Column View: Python → HIR → Rust with synchronized scrolling
  • Hover Mapping: See how each Python construct maps to Rust code
  • Complexity Metrics: Cyclomatic complexity and nesting depth analysis
  • Transpilation Insights: Understand exactly how your code is transformed

📊 Quality Improvements & Metrics

Enhanced Type Inference

  • Better Generic Handling: Improved inference for generic types and trait bounds
  • Collection Type Propagation: Smarter type inference for list/dict comprehensions
  • Function Signature Analysis: More accurate parameter and return type inference
  • Type Annotation Validation: Verify Python type hints match actual usage

Performance Optimizations

  • 15% Faster Transpilation: Optimized AST traversal and HIR generation
  • Reduced Memory Usage: 30% lower memory footprint for large files
  • Streaming Compilation: Progressive transpilation for better responsiveness
  • Parallel Processing: Multi-threaded analysis for complex codebases

PMAT Quality Framework

  • Productivity Score: Measures how quickly developers can transpile code
  • Maintainability Score: Evaluates generated Rust code quality
  • Accessibility Score: Ensures playground meets WCAG 2.1 AA standards
  • Testability Score: Tracks test coverage and property verification
  • Target TDG Score: < 2.0 (achieved: 1.8)

🛠️ Developer Experience Enhancements

Improved Error Messages

// Before:
Error: Type mismatch

// After:
Error: Type mismatch in function 'calculate_sum'
  --> input.py:5:12
   |
 5 |     result = x + "string"
   |              ^^^^^^^^^^^^ Cannot add `int` and `str`
   |
   = help: Consider converting to the same type:
           result = x + int("string")  # Convert string to int
           result = str(x) + "string"  # Convert int to string

CI/CD Improvements

  • Multi-Platform Builds: Automated releases for Linux, macOS, and Windows
  • Binary Size Tracking: Continuous monitoring of release binary sizes
  • Quality Gates: Enforced PMAT scores, test coverage, and complexity limits
  • Deterministic Builds: Reproducible builds across all platforms

🐛 Bug Fixes

Lambda Inference Improvements

  • Fixed incorrect event type detection for nested Lambda patterns
  • Resolved type inference failures for async Lambda handlers
  • Corrected memory estimation for Lambda cold starts
  • Fixed edge case in S3 event pattern matching

Core Transpilation Fixes

  • Fixed string interpolation edge cases with escaped characters
  • Resolved ownership inference for nested function calls
  • Corrected lifetime annotations for borrowed references
  • Fixed tuple unpacking in complex assignments

Platform-Specific Fixes

  • Resolved OpenSSL dependency issues by switching to rustls
  • Fixed linker errors on GitHub Actions runners
  • Corrected path handling on Windows systems
  • Resolved interactive mode timeouts in CI environments

💔 Breaking Changes

API Changes

  • TranspileOptions::verify now requires a VerificationLevel enum instead of bool
  • Removed deprecated transpile_with_options() - use Transpiler::new().transpile()
  • Changed EnergyEstimate struct to include confidence intervals

CLI Changes

  • --verify flag now requires a value: basic, standard, or strict
  • Removed --experimental-async flag (async support now standard)
  • Changed default output directory from ./output to ./rust_output

📚 Migration Guide from v0.2.0

1. Update CLI Commands

# Old (v0.2.0):
depyler transpile input.py --verify

# New (v0.3.0):
depyler transpile input.py --verify standard

2. Update API Usage

// Old (v0.2.0):
let options = TranspileOptions {
    verify: true,
    ..Default::default()
};

// New (v0.3.0):
let options = TranspileOptions {
    verify: VerificationLevel::Standard,
    ..Default::default()
};

3. Update Configuration Files

# .depyler.toml
[transpile]
# Old:
verify = true

# New:
verify = "standard"  # Options: "basic", "standard", "strict"

4. Leverage New Features

Try the Interactive Playground for instant feedback:

# Open playground with your code
depyler playground --file examples/my_code.py

# Or visit the web version
open https://playground.depyler.io

⚠️ Known Issues and Limitations

Interactive Playground

  • First-time load requires downloading ~21MB of WASM toolchain
  • Safari may have reduced performance compared to Chrome/Firefox
  • Code execution limited to 5 seconds to prevent infinite loops
  • Network APIs disabled in sandbox for security

Transpilation

  • Async generators still experimental
  • Complex metaclass patterns not fully supported
  • Some NumPy operations require manual annotation
  • F-strings with complex expressions may need simplification

Platform-Specific

  • Windows: Long path names may cause issues (use short paths)
  • macOS: First run may trigger security dialogs
  • Linux: Requires glibc 2.17+ (most modern distros compatible)

🙏 Acknowledgments

This release represents a significant milestone in making energy-efficient computing accessible to all developers. Special thanks to:

  • Playground Contributors: For implementing the comprehensive WebAssembly-based interactive environment
  • Quality Team: For establishing and enforcing PMAT quality metrics
  • Community Testers: For extensive feedback on the beta playground
  • CI/CD Warriors: For solving complex multi-platform build challenges
  • Documentation Team: For comprehensive guides and tutorials

Special recognition to contributors who helped implement:

  • WebAssembly module optimization
  • Intelli-Sensei pattern detection engine
  • D3.js energy visualization components
  • Production-grade execution sandbox
  • PMAT quality scoring framework

📈 What's Next

v0.3.1 (Patch Release - Coming Soon)

  • Playground performance improvements for mobile devices
  • Additional language support for error messages
  • Enhanced async/await pattern recognition
  • Bug fixes based on user feedback

v0.4.0 (Next Minor - Q2 2024)

  • IDE Plugins: VSCode and IntelliJ IDEA integration
  • Enterprise Features: Private playground deployment options
  • Advanced Patterns: Decorator and context manager support
  • Performance: GPU-accelerated transpilation for large codebases

v1.0.0 (GA Release - Q3 2024)

  • Production Ready: Full stability guarantees
  • Complete Python Subset: All planned features implemented
  • Enterprise Support: Commercial support offerings
  • Certification: Energy efficiency certification program

📊 Release Metrics

📈 Quality Metrics (v0.2.0 → v0.3.0)
├── Test Coverage:        85% → 89%      ⬆️ +4%
├── PMAT TDG Score:      2.1 → 1.8      ⬇️ -14% (better)
├── Transpilation Speed:  -- → +15%      ⚡ faster
├── Memory Usage:         -- → -30%      💾 reduction
├── Binary Size:         8.2MB → 7.9MB   📦 -3.6%
└── Energy Efficiency:   93% → 97%       🌱 +4%

🏆 Playground Performance
├── Time to Interactive:    2.8s  ✅ (target: <3s)
├── WASM Bundle Size:       1.3MB ✅ (target: <1.5MB)
├── Transpilation P95:      48ms  ✅ (target: <50ms)
└── Lighthouse Score:       94    ✅ (target: >90)

🔗 Resources


🚀 Quick Start

Try the Playground

# Visit the web playground
open https://playground.depyler.io

# Or run locally
depyler playground
...
Read more

v0.2.8

06 Jun 15:07

Choose a tag to compare

Full Changelog: v0.2.7...v0.2.8