{"id":22518529,"url":"https://github.com/anna-hope/rye-uv-workshop","last_synced_at":"2025-08-03T18:32:28.806Z","repository":{"id":256815701,"uuid":"856509605","full_name":"anna-hope/rye-uv-workshop","owner":"anna-hope","description":"Some simple projects for folks to play with Rye and uv","archived":false,"fork":false,"pushed_at":"2024-09-12T18:16:04.000Z","size":25,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-28T20:46:52.161Z","etag":null,"topics":["packaging-python","python","recurse-center","rye","uv"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anna-hope.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-12T17:38:17.000Z","updated_at":"2024-09-26T16:19:50.000Z","dependencies_parsed_at":"2024-09-13T07:12:35.366Z","dependency_job_id":null,"html_url":"https://github.com/anna-hope/rye-uv-workshop","commit_stats":null,"previous_names":["anna-hope/rye-uv-workshop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anna-hope%2Frye-uv-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anna-hope%2Frye-uv-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anna-hope%2Frye-uv-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anna-hope%2Frye-uv-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anna-hope","download_url":"https://codeload.github.com/anna-hope/rye-uv-workshop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228557092,"owners_count":17936452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["packaging-python","python","recurse-center","rye","uv"],"created_at":"2024-12-07T04:15:57.433Z","updated_at":"2024-12-07T04:15:57.578Z","avatar_url":"https://github.com/anna-hope.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Beyond requirements.txt: Rye and UV\n\nPython is a great language, it has an amazing ecosystem, but dependency management for any non-trivial project \ncan be very hard (and they almost all turn out to be non-trivial).\n\nBut there are newer tools like [Rye](https://rye.astral.sh/) \nand [uv](https://docs.astral.sh/uv/) that promise to make it easy.\n\n*I know,* we already have the zoo of pip *(one to find them),* \nPoetry *(one to bring them all),* \nAnaconda *(in the darkness bind them),* \nand whatever else, and the last thing we need is yet more ways to manage Python dependencies. \nBut Rye and uv might finally be the one to *rule them all.*\nOr, uh, you know, just make things better and let you and your collaborators work on the interesting things in your code,\ninstead of fighting with dependencies and other tooling.\n\n## So what is this?\n\nThis repository has two projects. They have functionally the same Python\ncode, but one was set up with Rye, and the other with uv.\n\nIf you want to get hands-on experience with both, and see how much\nfaster you can get going with a Python project than with most other tooling,\nplease try them out for yourself! Each project contains its own README\nwith more instructions.\n\nYou can try either one, or both (or none!), but I wrote each README with\nthe assumption that you'd try the Rye project first, and the uv second.\nThe main consequence is that in the uv project's README, I call out differences\nwith Rye, assuming you might have already tried it.\n\n## Extra things to think about\n\nIf you've tried the above projects, do you prefer either of their workflows to\none another? Do you prefer either of them to what you might already be used \nto when working with Python projects?\n\nTake a look at each project's `pyproject.toml`. Do you notice any quirks\nor differences in either of them? \n\n`pyproject.toml` is the [current standard](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/)\nfor Python tooling broadly, not just uv or Rye. But you might notice that uv and Rye\nadd their own sections that *aren't* part of the standard \n(notably, `tool.x.dev-dependencies` and the line). Those are definitely useful, and the\nstandard specification currently provides no alternative. Do you think there might be any issues \nwith these tools introducing their own, non-standard structure?\n\n\n### For the adventurous\n\nThe projects in this repository are fairly straightforward. They do\nhave a number of dependencies, but the project structure itself\nisn't that complex.\n\nBoth Rye and `uv` really shine when you can use them to maintain\na project over time — upgrading dependencies, onboarding new collaborators,\nadapting to new versions of Python, etc. \n\nSo, if you want to try more complex things...\n\n- Try setting up your own project with uv or Rye. Maybe something with \nmore complex dependencies like `numpy`, `polars`, `pandas`, or `pytorch` and\n`tensorflow`, if you're into those things. Was it more difficult than using `pip`\nor `conda`? Is there anything that Rye or uv did that made it less painful? *More painful?*\n\n- Try adapting an existing Python project (maybe on of your own, or \na project you like, say ... [Blaggregator](https://github.com/recursecenter/blaggregator))\nto use either Rye or uv. \n\nIf you do any of the above, let me know how it goes. How was the experience? What were the\nrough parts? Did you encounter any particular quirks of either Rye or uv in the process?\n\n#### Links to documentation to help\n- [Rye](https://rye.astral.sh/guide/)\n- [uv](https://docs.astral.sh/uv/)\n\n## Acknowledgments\n\nThanks to all the RC folks who attended my somewhat chaotic workshop about these tools!\nAnd also thanks to the creators of Rye and uv for doing so much work to push Python\nproject management tooling forward. And, finally, thank you to\nthe creators and maintainers of the [Genrenator API](https://binaryjazz.us/genrenator-api/)\nto all\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanna-hope%2Frye-uv-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanna-hope%2Frye-uv-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanna-hope%2Frye-uv-workshop/lists"}