تخطَّ إلى المحتوى

rattler - مكتبة إدارة حزمة Rust Conda

rattler - مكتبة إدارة حزمة Rust Conda

rattler هي مجموعة من مكتبات Rust وأدوات لـ العمل مع نظام conda الحزم، من قبل prefix.dev. فهو يعيد تنفيذ عمليات conda الأساسية — تحليل repodata وحل التبعيات وتحميل وتثبيت الحزم — مع محلول سريع (resolvo) وبدون تبعية Python. وهو المحرك الأساسي تحت pixi، و rattler-build هو بديل حديث لـ conda-build الذي يبني الحزم من وصفة إعلانية.

المكونات

المكونالغرض
rattler (crates)المكتبات: repodata، المحلول، المثبت
rattler-buildبناء حزم conda من الوصفات
rattler-indexإنشاء قناة repodata
resolvoمحلول التبعيات SAT

تثبيت rattler-build

الطريقةالأمر
Cargocargo install rattler-build
pixipixi global install rattler-build
condaconda install -c conda-forge rattler-build
ملف ثنائيتحميل من GitHub Releases
التحققrattler-build --version

بناء حزمة

# recipe.yaml
package:
  name: mypackage
  version: 1.0.0

source:
  url: https://example.com/mypackage-1.0.0.tar.gz
  sha256: abc123...

build:
  number: 0
  script: python -m pip install . -vv

requirements:
  host:
    - python >=3.9
    - pip
  run:
    - python >=3.9
    - numpy

tests:
  - python:
      imports:
        - mypackage

about:
  homepage: https://example.com
  license: MIT
  summary: An example package
rattler-build build --recipe recipe.yaml
الأمرالوصف
rattler-build build --recipe FILEبناء الحزمة
rattler-build build -r . --target-platform linux-64هدف عابر للمنصات
rattler-build test --package-file X.condaتشغيل اختبارات الوصفة
rattler-build uploadنشر إلى قناة
--output-dir DIRحيث تهبط الحفنة المبنية

ملخص تنسيق الوصفة (v1)

القسمالغرض
packageالاسم والإصدار
sourceURL/git + checksum، أو مسار محلي
buildرقم البناء، النص، تخطي الشروط
requirementsbuild / host / run / run_constraints
testsالاستيراد والسكريبت واختبارات محتوى الحزمة
aboutالترخيص والصفحة الرئيسية والملخص
contextمتغيرات قابلة لإعادة الاستخدام عبر Jinja
context:
  version: "1.0.0"
package:
  name: mypackage
  version: ${{ version }}

المتغيرات (مصفوفات البناء)

# variants.yaml — بناء ضد عدة إصدارات Python
python:
  - "3.11"
  - "3.12"
rattler-build build --recipe recipe.yaml --variant-config variants.yaml

استخدام مكتبات Rust

// مفهوم: حل وتثبيت بيئة برمجيًا
use rattler_solve::{SolverImpl, SolverTask};
// 1) احصل على repodata للقنوات
// 2) بناء SolverTask مع المواصفات الخاصة بك
// 3) حل → قائمة سجلات الحزمة
// 4) التثبيت في بادئة مع مثبت rattler
Crateتوفير
rattler_repodata_gatewayجلب/ذاكرة قناة repodata
rattler_solveحل التبعيات (resolvo)
rattler_installs_packagesالتثبيت في بادئة
rattler_conda_typesأنواع أساسية (MatchSpec, RepoData)

rattler-build مقابل conda-build

الجانبrattler-buildconda-build
اللغةRustPython
السرعةأسرع بكثيرأبطأ
تنسيق الوصفةv1 recipe.yamlmeta.yaml
التبعياتملف ثنائي مستقليتطلب conda/Python
الأفضل لـالوصفات الجديدة وسرعة CIالوصفات المتوارثة

أين يناسب rattler

الأداةالعلاقة
pixiمدمج في rattler
conda-lockقفل لسير عمل conda الكلاسيكي
micromambaعميل conda سريع C++ (جهد متوازي)
conda-forgeيشيد بشكل متزايد مع rattler-build

الموارد