Skip to content

tachyon-sh/tachyon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌀 Tachyon – ультрабыстрый пакетный менеджер 🚀

Tachyon – это новый супербыстрый пакетный менеджер для Python, который работает быстрее uv и pip.
Он использует .tpk (Tachyon Package) – сжатый и подписанный формат пакетов, который ускоряет установку и обновление.


📌 Особенности

  • ✅ Быстрее uv и pip – благодаря mmap, многопоточности и кешированию.
  • ✅ Полностью автономный – не требует pip, setuptools и wheel.
  • ✅ Упаковывает в .tpk – сжатый TAR + Zstd + подпись.
  • ✅ Автоматически находит Python – даже если он установлен в нестандартном месте.
  • ✅ Удаление работает через goroutines – минимум задержек.
  • ✅ Поддержка каналов (stable, beta, nightly) – удобно для тестирования.

🔧 Установка

git clone https://github.com/tachyon/tachyon.git
cd tachyon
make install

(псс... также можно через train - sh train install tachyon x))

  • Убедитесь, что ~/.rails/bin/ есть в PATH.

    Добавьте следующую строку в ваш ~/.bashrc, ~/.zshrc или ~/.bash_profile:

    export PATH="$HOME/.rails/bin:$PATH"

    Затем примените изменения:

    source ~/.bashrc  # Для bash
    source ~/.zshrc   # Для zsh

📦 Как упаковать пакет?

Чтобы упаковать пакет в .tpk, используйте команду:

tachyon pack <путь_к_пакету> -o <имя_архива>.tpk

Например:

tachyon pack ../test-package/package-test -o test-package.tpk

⚙️ Что происходит при упаковке?

  1. Сканирование содержимого
    • Tachyon рекурсивно сканирует директорию <путь_к_пакету> и добавляет файлы в архив.
  2. Создание TAR-архива
    • Все файлы объединяются в tar-архив, а затем сжимаются с использованием zstd для максимальной скорости и минимального размера.
  3. Добавление метаданных
    • Внутри .tpk сохраняется информация о пакете (например, package.dist-info/METADATA).
  4. Цифровая подпись
    • Архив подписывается встроенным RSA-ключом, чтобы гарантировать его целостность и аутентичность.
  5. Финальная проверка
    • Проверяется минимальный размер архива, а также корректность упаковки.

🔍 Пример работы команды:

📦 Упаковка пакета: ../test-package/package-test
📦 Добавлен в архив: test-package/__init__.py
📦 Добавлен в архив: test-package/__main__.py
📦 Добавлен в архив: test-package/package.dist-info/METADATA
📦 Упаковка завершена, размер архива: 261 байт

🚀 Как установить пакет?

tachyon install <имяпакета>.tpk
  • Tachyon автоматически кеширует пакеты.
  • Можно указать канал:
tachyon install <имяпакета>.tpk --channel beta

🔄 Как обновить пакет?

tachyon update <имя пакета>.tpk
  • Если пакет установлен, он будет обновлён без удаления.

🗑️ Как удалить пакет?

tachyon remove <имя пакета>
  • Пакет удаляется из site-packages. (P.S. мы не уверены что это очень правильно, можно сказать удаление у нас на бета теста ^_^)
  • Кеш .tpk тоже удаляется.

📜 Как посмотреть установленные пакеты?

tachyon list
  • Отображает только пакеты, установленные через Tachyon. (хех, это тоже пока не доделано)

🔍 Как очистить кеш?

tachyon cache clean

Можно очистить кеш только для одного канала:

tachyon cache clean --channel beta

🚀 Что добавим дальше?

  • Добавить mmap для установки – ускорит в 2-3 раза. (по крайней мере мы доделаем его в более нормальную работу)
  • Сделать tachyon search – чтобы находить пакеты в удалённых репозиториях.
  • Добавить tachyon verify – проверку подписи .tpk.
  • Доработать поддержку whl, tar.gz – для обратной совместимости. (как же без легаси поддержки x))

📣 Tachyon уже быстрее uv. Но можно ещё быстрее! ⚡

🚀 Вперед – ускоряем Python!