公開 · やさしい入門

SlimePython ― やさしい入門

ひとことで:あなたが書いた Python を、まったく同じ結果を出す Rust に変換するツールです。「だいたい同じ」ではなく、出力が1ビットまで完全に一致することを SHA-256(ハッシュ)で証明します。

なぜうれしいの?

  • Python は書きやすい。でも配布・速度・安全性では Rust が強い。
  • ふつう「Python を Rust に書き直す」と、本当に同じ動きか不安になる。
  • SlimePython は出力が1ビットまで一致することをハッシュで示すので、「だいたい合ってる」の確認作業がいらない

かんたんな例

たとえば、こんな普通の Python:

def greet(name):
    return f"Hello, {name}!"

print(greet("World"))

これを変換した Rust も、実行すると Hello, World!まったく同じバイト列で出します。同じ入力なら Python と Rust の出力ハッシュが一致 ― それが「証明できた」という意味です。

「私のコード、動的でぐちゃぐちゃだけど…」

大丈夫。きれいに書き直す必要はありません。

  • きれいに変換できる部分 → そのまま Rust になります。
  • 動的でトリッキーな部分(動的な属性アクセス、書き換え、eval など)→ 安全な Python サンドボックスの中でそのまま動かし、その結果だけを固定します。
だから「Python を直してから持ってきて」とは言いません。今の Python のままでいい。Python の動的さ・自由さを矯正せず、そのまま保存する ― これが SlimePython の考え方です。

正直に

すべてのコードで「完璧」を約束はしません。時刻・乱数・通信など、Python 本来の「実行のたびに変わる(ゆらぐ)」部分は、そもそも誰がやっても1ビット一致にはなりません ― これは bit-exact 保証の対象外です(無理に隠さず、そう書きます)。
私たちは「理論上 100%」より 「実際に使って生産性が上がる」ことを大事にしています。

もっと知りたくなったら

SlimePython は SlimeNENC 構造的トランスレーション・ファミリーの「モダン言語」メンバーです(レガシー側は COBOL / JCL / RPG など)。