stdpython 1.0.7

Python standard library runtime for the Rython compiler ecosystem
Documentation

rython_stdpython

The default Python runtime library for the Rython compiler ecosystem. This crate provides a comprehensive, Python-compatible standard library implementation in Rust that serves as the runtime foundation for Python code compiled to Rust via the Rython toolchain.

Overview

rython_stdpython is a complete Python runtime environment written in Rust that enables compiled Python code to access all Python built-ins, types, and standard operations without requiring any imports. It provides both std and no_std variants, making it suitable for everything from desktop applications to embedded systems.

Key Features

  • Complete Python Built-ins: 40+ built-in functions implemented (print, len, range, enumerate, zip, min, max, sum, all, any, etc.)
  • Full Type System: Python-compatible implementations of str, list, dict, tuple, set, int, float, bool with all their methods
  • Generic Trait System: Flexible, zero-cost abstractions that work with any type implementing the appropriate trait
  • Exception Handling: Complete Python exception hierarchy (ValueError, TypeError, IndexError, etc.)
  • Both std and no_std: Supports standard library environments and embedded/no_std targets
  • Memory Safe: All operations maintain Rust's memory safety guarantees
  • Performance Optimized: Native Rust implementations provide superior performance to interpreted Python

Architecture

This library uses a generic trait-based design that mirrors Python's built-in behavior:

Conversion Traits

  • PyAbs: Generic absolute value (abs(-5i64), abs(-3.14f64))
  • PyBool: Generic boolean conversion (bool(42), bool(""))
  • PyInt: Generic integer conversion (int("123"), int(3.14))
  • PyFloat: Generic float conversion (float("3.14"), float(42))
  • PyToString: Generic string conversion (str(123), str(true))
  • PySum: Generic summation (sum(&[1,2,3]), sum(&pylist))

Runtime Traits

  • Len: Universal length calculation
  • Truthy: Python-style truthiness evaluation

What's Implemented

Python Built-in Functions (40+)

Math/Logic: abs(), min(), max(), sum(), all(), any()
Iteration: enumerate(), zip(), range(), len()
Type Conversion: bool(), int(), float(), str(), list(), dict(), tuple(), set()
Object Introspection: type(), isinstance(), hasattr(), getattr(), setattr(), delattr(), id(), hash()
Character/Unicode: ord(), chr()
I/O: print() with full parameter support (std mode only)

Python Built-in Types with Complete Method Sets

PyStr (String Type)

Core Methods: split(), join(), strip(), lower(), upper(), replace()
Search Methods: find(), count(), startswith(), endswith()
Formatting: format() (basic implementation)

PyList (List Type)

Modification: append(), extend(), insert(), remove(), pop(), clear()
Search/Sort: index(), count(), sort(), reverse()
Utilities: copy(), indexing with get()/set()

PyDictionary (Dictionary Type)

Access: get(), get_or_default(), contains_key()
Modification: set(), pop(), clear(), update()
Iteration: keys(), values(), items()

PyTuple (Tuple Type)

Immutable sequence: Index access, slicing support

PySet (Set Type)

Modification: add(), remove(), discard(), clear()
Set Operations: union(), intersection(), difference()
Membership: contains()

Exception System

Complete Exception Hierarchy: PyException, ValueError, TypeError, IndexError, KeyError, AttributeError, NameError, ZeroDivisionError, OverflowError, RuntimeError

What's Not Implemented

Advanced Python Features: Decorators, metaclasses, generators, async/await
Complex Built-ins: exec(), eval(), compile(), globals(), locals()
File I/O (no_std mode): File operations, directory handling
Networking: Socket operations, HTTP clients
Threading: Thread management, locks, synchronization
Regular Expressions: re module functionality
Date/Time: datetime, time module functionality
OS Interface: os, sys module functionality
Import System: Dynamic module loading

Usage

Standard Library Mode (default)

[dependencies]
rython_stdpython = "1.0"

No-Std Mode (embedded systems)

[dependencies]
rython_stdpython = { version = "1.0", default-features = false, features = ["nostd"] }

Example Usage

use rython_stdpython::*;

fn main() {
    // Generic functions work with any compatible type
    let nums = vec![1, 2, 3, 4, 5];
    let total = sum(&nums[..]);  // Generic summation
    
    // Python-like type conversions
    let s = str(total);  // "15"
    let b = bool(&nums); // true (non-empty)
    
    // Full Python collections
    let mut list = PyList::from_vec(nums);
    list.append(6);
    
    // All Python built-ins available
    print(&format!("Total: {}", total));
    assert_eq!(len(&list), 6);
}

Integration with Rython

This crate serves as the runtime foundation for the entire Rython ecosystem:

  • rythonc: The Python-to-Rust compiler generates code that calls these runtime functions
  • python-ast-rs: AST code generation targets these built-in implementations
  • python-mod-rs: Embedded Python modules depend on these built-ins

When Python code is compiled to Rust, it naturally maps to function calls in this library:

# Python code
my_list = [1, 2, 3]
total = sum(my_list)
print(str(total))
// Generated Rust code
let mut my_list = PyList::from_vec(vec![1, 2, 3]);
let total = sum(&my_list);  // Uses PySum trait
print(str(total));          // Uses PyToString trait

Building and Testing

# Standard library version
cargo build
cargo test

# No-std version  
cargo build --no-default-features --features nostd
cargo test --no-default-features --features nostd

# Run specific test modules
cargo test test_python_functions  # Built-in function tests
cargo test test_pystr             # String type tests
cargo test test_pylist            # List type tests

License

This project is part of the Rython compiler ecosystem.