asdf-python VS rye

Compare asdf-python vs rye and see what are their differences.

asdf-python

Python plugin for the asdf version manager (by asdf-community)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
asdf-python rye
8 31
627 11,368
3.2% 10.9%
3.2 9.7
3 months ago 1 day ago
Shell Rust
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

asdf-python

Posts with mentions or reviews of asdf-python. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-25.
  • Pyenv – lets you easily switch between multiple versions of Python
    20 projects | news.ycombinator.com | 25 Mar 2024
    Point of clarification: asdf uses python-build which is from pyenv.

    https://github.com/asdf-community/asdf-python?tab=readme-ov-...

  • A Journey to Find an Ultimate Development Environment
    13 projects | dev.to | 2 Feb 2024
    [env] # supports arbitrary env vars so mise can be used like direnv/dotenv NODE_ENV = 'production' [tools] # specify single or multiple versions terraform = '1.0.0' erlang = ['23.3', '24.0'] # supports everything you can do with .tool-versions currently node = ['16', 'prefix:20', 'ref:master', 'path:~/.nodes/14'] # send arbitrary options to the plugin, passed as: # MISE_TOOL_OPTS\_\_VENV=.venv python = {version='3.10', virtualenv='.venv'} [plugins] # specify a custom repo url # note this will only be used if the plugin does not already exist python = 'https://github.com/asdf-community/asdf-python' [alias.node] # project-local aliases my_custom_node = '20'
  • Python..
    1 project | /r/programmingcirclejerk | 8 Jun 2023
  • Asdf – the language tool version manager
    11 projects | news.ycombinator.com | 24 Oct 2022
    Yeah, I should've been more precise. The asdf plugins use parts of existing systems. For example (python/ruby/node)-build which mostly come from other version managers. Asdf does provide extras, but the plugin-specific code is tiny: https://github.com/asdf-community/asdf-python/blob/master/bi...
  • One of the most powerful Software Development tool - 2 mins read
    22 projects | dev.to | 1 Jan 2022
    ❯ asdf plugin-list --urls --refs act https://github.com/grimoh/asdf-act.git master 8729029 aws-vault https://github.com/beardix/asdf-aws-vault.git master 937a1db awscli https://github.com/MetricMike/asdf-awscli.git main b9ba4c7 docker-slim https://github.com/everpeace/asdf-docker-slim.git master 4ee75a3 golang https://github.com/kennyp/asdf-golang.git master 1f388f1 helm https://github.com/Antiarchitect/asdf-helm.git master 87eef5a java https://github.com/halcyon/asdf-java.git master f0c702f jq https://github.com/ryodocx/asdf-jq.git master 3144577 kubectl https://github.com/asdf-community/asdf-kubectl.git master da7bb0b minikube https://github.com/alvarobp/asdf-minikube.git master 8ca7b8d mysql https://github.com/iroddis/asdf-mysql.git master 3aaf756 nodejs https://github.com/asdf-vm/asdf-nodejs.git master cb61e3d perl https://github.com/ouest/asdf-perl.git master 31bb799 php https://github.com/asdf-community/asdf-php.git master 759843b postgres https://github.com/smashedtoatoms/asdf-postgres.git master 4f8b356 python https://github.com/danhper/asdf-python.git master 8ab052f redis https://github.com/smashedtoatoms/asdf-redis.git master bf1276e ruby https://github.com/asdf-vm/asdf-ruby.git master f134c2d sbt https://github.com/bram2000/asdf-sbt.git master 33f9637 scala https://github.com/asdf-community/asdf-scala.git master 1206055 skaffold https://github.com/virtualstaticvoid/asdf-skaffold.git master c942ecf spark https://github.com/joshuaballoch/asdf-spark.git master 6fe49de
  • O inicio, instalando Python
    4 projects | dev.to | 24 Apr 2021
  • Beginning python dev, just started using WSL2 and VS Code, my $PATH environment variable is full of lots of junk from years of not knowing what I'm doing. How do I know what to get rid of, what to keep, and which file goes first in the $PATH?
    1 project | /r/learnpython | 12 Mar 2021
    You could look at what a new $PATH file looks like by spinning up a new VM or google around for default path examples. As for your dependency issues, I like to use poetry and asdf to keep things straight.
  • Homebrew Python Is Not for You
    10 projects | news.ycombinator.com | 3 Feb 2021
    I use asdf and its Python plugin [1] to install Python interpreter versions.

    For managing virtual environments on my preferred shell (Fish), I use (and maintain) VirtualFish [2].

    For managing project dependencies, I activate environments via VirtualFish and then use Poetry [3] to update the dependencies within the environments.

    [1]: https://github.com/danhper/asdf-python

    [2]: http://github.com/justinmayer/virtualfish

    [3]: http://python-poetry.org

rye

Posts with mentions or reviews of rye. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-11.
  • Trying Out Rye
    3 projects | news.ycombinator.com | 11 Apr 2024
    I tried out rye + uv on a recent greenfield project. They are awesome tools and I'm really excited about their potential.

    For me, rye (+ uv underneath) has perhaps the perfect workflow for an open source Python project. So I'm definitely using rye for that from now in -- instead of, say, poetry -- or hatchling directly, following the PyPA boilerplate[1].

    You have a way of doing local development against any Python interpreter version. You have a way of tweaking dependencies. It all works atop "standard" PyPA infrastructure like pyproject.toml. You have a single command to build[1] project artifacts, like wheels. And you have a single command to publish new artifact versions to PyPI[2].

    I think if you're doing local development on a project that is not meant to be published to PyPI, like a private Django project, then whether to use rye becomes more of a debate. For example, for a Django project I'm working on, I decided to just use uv directly, along with a Makefile. This is because during development of a Django project, I preferred to just use a plain requirements.txt (really, requirements.in) file, avoid the sync/lock workflow that rye imposes, and avoid the need to use something like rye run. And rye's ability to package didn't solve a problem since the Django project wasn't being deployed via a PyPA packaging mechanism.

    But this is probably also because the Python interpreter/venv management problem, for me, is already handled by pyenv. I think if you're not already a pyenv user, rye is even more appealing because it handles "all" of the Python issues -- interpreters, requirements/dependencies, and packaging/publishing. (As well as a number of other standard issues besides, like testing, linting, and formatting.) But, in my case, I could hand venv management to uv, and then make dependency management part of a larger Makefile for my Django project, including custom linting, testing, and deployment steps. I wrote a little bit about my high level thoughts on Python packaging and dependency management, though this post was written before rye and uv were out.[4]

    I'll also say, I found a little bug in how rye (+ hatch) interacted with my local git setup, and reported it to the rye team, and they helped me get to the bottom of it rather quickly.[5]

    [1]: https://packaging.python.org/en/latest/tutorials/packaging-p...

    [2]: https://rye-up.com/guide/commands/build/

    [3]: https://rye-up.com/guide/commands/publish/

    [4]: https://amontalenti.com/2022/10/09/python-packaging-and-zig

    [5]: https://github.com/astral-sh/rye/issues/793

  • Pyenv – lets you easily switch between multiple versions of Python
    20 projects | news.ycombinator.com | 25 Mar 2024
    I've been using Rye[0] lately, which has been pretty good. It's really just a wrapper around a bunch of underlying tools - it's nice to not have to worry about those and let Rye do it's thing.

    All that being said, the creator of Rye is 100% cognizant of that XKCD comic, this [1] is a nice read.

    I'm not super well versed in Python tooling at all. I've had to work a lot in Python in the past 6+ months, and I become super confused when I tried making a Python project in my spare time.

    I settled on Rye because it just seemed to be the easiest to use.

    [0]: https://rye-up.com/

  • Uv: Python Packaging in Rust
    9 projects | news.ycombinator.com | 15 Feb 2024
    I think Rye actually does handle this mostly correctly (as the sibling comment said). I got through some of it here: https://github.com/mitsuhiko/rye/issues/671. I think actually it's very close to what I actually want (maybe not what Armin wants with multiversion).
  • RustPython
    14 projects | news.ycombinator.com | 7 Feb 2024
    Rye[1] is an all in one manager for python projects. Including the python versions and virtualenv, pip etc etc... It seperates tool deps from app deps. Its all configured through a pyproject.toml config file.

    Its still new but works well. I'm transiting to it from an unholy mess of pyenv, pip installs and other manual hacks.

    If you're starting a new python project that is more than just a straightforward script I'd use Rye from the get go.

    [1]https://rye-up.com/

  • FLaNK Stack 05 Feb 2024
    49 projects | dev.to | 5 Feb 2024
  • Rye: A Vision Continued
    2 projects | news.ycombinator.com | 4 Feb 2024
    Your first comment irked me because it adds zero value to the discussion. You lazily threw out XKCD 927 which the Rye author explicitly mentioned themselves.

    If you click into their link "Should Rye Exist" [1] you'll see that XKCD 927 is literally the first sentence and full width image.

    [1] https://github.com/mitsuhiko/rye/discussions/6

  • iJustWantAStableExperience
    2 projects | /r/ProgrammerHumor | 10 Dec 2023
    Try Rye.
  • Poetry: Python Packaging and Dependency Management
    2 projects | news.ycombinator.com | 29 Aug 2023
    Since this is a discussion on dependency management in Python - does anyone use rye [0] regularly now? I'm interested in using it but want a little more social validation before I try - some issues with package managers only appear after you've invested considerable time.

    [0]: https://rye-up.com/

  • Why not tell people to “simply” use pyenv, poetry or anaconda
    7 projects | news.ycombinator.com | 13 Jun 2023
    The short term solution is "relieving the packaging pain" link in the article.

    The long term solution is described in the "What a solution could look like?" section of https://www.bitecode.dev/p/why-is-the-python-installation-pr...

    The community is buzzing with attempts to fix those issues this year, so I’m hopping those posts will become obsolete one day.

    Flask’s author is attempting something interesting with rye: https://github.com/mitsuhiko/rye

    Trio’s author is drafting a spec for the equivalent of wheels, but for the whole python interpreter: https://github.com/njsmith/posy/blob/main/pybi/README.md

    Not advocating to use them right now, but the fact is bootstrapping Python is finally acknowledged as one major cause of packaging issues and a priority to solve.

  • Show /r/rust: self-replace, a create to self-delete and self-replace binaries on Mac, Linux and Windows
    1 project | /r/rust | 18 May 2023
    I'm building a package manager for Python (Rye) in Rust and it is modeled after cargo and rustup. It like rustup manages itself. This means it has commands such as rye self update which downloads the latest version and swaps itself out. Likewise there is rye self uninstall which uninstalls rye itself.

What are some alternatives?

When comparing asdf-python and rye you can also consider the following projects:

homebrew-core - 🍻 Default formulae for the missing package manager for macOS (or Linux)

uv - An extremely fast Python package installer and resolver, written in Rust.

tfenv - Terraform version manager

huak - My experimental python package manager.

rbenv - Manage your app's Ruby environment

mise - dev tools, env vars, task runner

pyenv - Simple Python version management

mamba-how-to - Using Mamba-forge for Python environment management

nodeenv - Virtual environment for Node.js & integrator with virtualenv

poetry-plugin-export - Poetry plugin to export the dependencies to various formats

asdf-helm - Helm plugin for asdf version manager https://github.com/asdf-vm/asdf

zpy - Zsh helpers for Python venvs, with uv or pip-tools