Windows-GPU-UNLOCK
RTX3090 UEFI 포트, 한국어 무리셋 윈도우 부팅 가이드, 검증된 소스와 벤치마크 제공
Bashrs: Rust-to-Shell Transpiler for Deterministic Bootstrap Scripts
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A bidirectional shell safety tool that transpiles Rust to deterministic POSIX shell scripts and purifies legacy bash into safe, portable shell. Also known as Rash (the library crate). Part of the PAIML Sovereign AI Stack transpiler family alongside depyler and decy.
Shell scripts power CI/CD pipelines, deployment automation, and system configuration across every production environment. They are also notoriously fragile -- unquoted variables, non-idempotent operations, and injection vulnerabilities are the norm, not the exception.
bashrs solves this in two directions:
Generated scripts run on any POSIX-compliant system with zero runtime dependencies. Same input always produces identical output.
cargo install bashrs
Add to your Cargo.toml:
[dependencies]
bashrs = "6.65"
// install.rs
#[rash::main]
fn main() {
let version = env_var_or("VERSION", "1.0.0");
let prefix = env_var_or("PREFIX", "/usr/local");
echo("Installing MyApp {version} to {prefix}");
mkdir_p("{prefix}/bin");
mkdir_p("{prefix}/share/myapp");
if exec("cp myapp {prefix}/bin/") {
echo("Binary installed");
} else {
eprint("Failed to install binary");
exit(1);
}
}
Transpile to safe POSIX shell:
bashrs build install.rs -o install.sh
Before (unsafe bash):
#!/bin/bash
SESSION_ID=$RANDOM # Non-deterministic
mkdir /app/releases/$RELEASE # Non-idempotent
rm /app/current # Fails if missing
After (purified by Rash):
#!/bin/sh
session_id="session-${version}" # Deterministic
mkdir -p "/app/releases/${release}" # Idempotent
rm -f "/app/current" # Safe removal
# Transpile Rust to shell
bashrs build input.rs -o output.sh
# Purify legacy bash scripts
bashrs purify messy.sh -o clean.sh
# Lint shell scripts (including Dockerfiles)
bashrs lint script.sh
# Quality scoring
bashrs score script.sh
# Interactive REPL
bashrs repl
# Mutation testing
bashrs mutate script.sh --count 10
.bashrsignore support, and watch mode.rash-mcp, registered as io.github.paiml/rash).| ShellCheck | bashrs |
|---|---|
| Warns about unquoted variables | Quotes all variables automatically |
Warns about non-deterministic $RANDOM | Rewrites to version-based deterministic IDs |
Warns about non-idempotent mkdir | Transforms to mkdir -p |
| Static pattern matching | Full AST semantic understanding |
| Read-only analysis | Read-write transformation |
bashrs is a workspace of five crates:
| Crate | Purpose |
|---|---|
bashrs (rash) | Core library: parser, transpiler, linter, formatter |
bashrs-specs | Formal verification specs and benchmarks |
bashrs-oracle | ML-powered error classification |
bashrs-wasm | Browser-compatible WASM build |
rash-runtime | Runtime support for transpiled scripts |
The transpilation pipeline:
Rust Source --> Parse (syn) --> Rash IR --> POSIX Shell AST --> Emit
|
+--> Makefile AST --> Emit
|
+--> Dockerfile AST --> Emit
The purification pipeline:
Bash Source --> Parse (AST) --> Safety Analysis --> Rewrite --> Emit
| Metric | Value |
|---|---|
| Tests | 15,117 passing |
| Line Coverage | 95.04% |
| Corpus Score | 97.5/100 (Grade A+) |
| Corpus Entries | 17,882 (100% pass) |
| ShellCheck Compliance | 99.9% |
| Cross-Shell Compatibility | 6 shells (sh, dash, bash, ash, zsh, mksh) |
| Deterministic | 100% (same input = same output) |
bashrs uses Popperian falsification -- tests attempt to disprove functionality rather than confirm it. A passing test means the falsification attempt failed.
# 130-point transpiler falsification checklist
cargo test -p bashrs --test transpiler_tcode_tests
# 30-point Dockerfile falsification checklist
cargo test -p bashrs --test dockerfile_dcode_tests
| Operation | Time |
|---|---|
| Rust-to-Shell transpilation | 21.1 us |
| Makefile parsing | 0.034--1.43 ms |
| Memory usage | < 10 MB |
bashrs is part of the PAIML Sovereign AI Stack -- a pure-Rust ecosystem for privacy-preserving ML infrastructure.
| Layer | Crate | Purpose |
|---|---|---|
| Compute | trueno | SIMD/GPU primitives (AVX2/AVX-512/NEON) |
| ML | aprender | ML algorithms, APR v2 model format |
| Training | entrenar | Autograd, LoRA/QLoRA, quantization |
| Inference | realizar | LLM inference, GPU kernels |
| Distribution | repartir | Distributed compute (CPU/GPU/Remote) |
| Orchestration | batuta | Stack coordination and CLI |
| Transpilers | bashrs, depyler, decy | Shell/Python/C to Rust |
| Verification | provable-contracts | YAML contract verification |
master branchmake lint && make testmake coverageMIT License. See LICENSE for details.