41554 blogs · [ { "id": "01a0b5c5-1f1b-7166-87d6-7a9b55d41a81", "title": "Our endorsements for Python’s first Packaging Council", "url": "https://astral.sh/blog/python-packaging-council", "published_at": "2026-09-04T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b55e8c0e7", "title": "Ruff v0.16.0", "url": "https://astral.sh/blog/ruff-v0.16.0", "published_at": "2026-07-23T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b569c5403", "title": "Vulnerability and malware checks in uv", "url": "https://astral.sh/blog/uv-audit", "published_at": "2026-06-08T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b56e81139", "title": "Open source security at Astral", "url": "https://astral.sh/blog/open-source-security-at-astral", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b57db7385", "title": "Astral to join OpenAI", "url": "https://astral.sh/blog/openai", "published_at": "2026-03-19T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b58d03d50", "title": "Ruff v0.15.0", "url": "https://astral.sh/blog/ruff-v0.15.0", "published_at": "2026-02-03T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b58fa00a1", "title": "ty: An extremely fast Python type checker and LSP", "url": "https://astral.sh/blog/ty", "published_at": "2025-12-16T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5999dbb5", "title": "Python 3.14", "url": "https://astral.sh/blog/python-3.14", "published_at": "2025-10-07T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5a42fdc1", "title": "Ruff v0.13.0", "url": "https://astral.sh/blog/ruff-v0.13.0", "published_at": "2025-09-10T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5a8a7c2b", "title": "Astral OSS Fund: One Year Later", "url": "https://astral.sh/blog/astral-oss-fund-one-year-later", "published_at": "2025-08-28T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5b4279db", "title": "pyx: a Python-native package registry, now in Beta", "url": "https://astral.sh/blog/introducing-pyx", "published_at": "2025-08-13T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5b582599", "title": "A variant-enabled build of uv", "url": "https://astral.sh/blog/wheel-variants", "published_at": "2025-08-13T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5b82c1ef", "title": "uv security advisory: ZIP payload obfuscation", "url": "https://astral.sh/blog/uv-security-advisory-cve-2025-54368", "published_at": "2025-08-07T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5be27a23", "title": "Ruff v0.12.0", "url": "https://astral.sh/blog/ruff-v0.12.0", "published_at": "2025-06-12T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5c53363a", "title": "Ruff v0.10.0", "url": "https://astral.sh/blog/ruff-v0.10.0", "published_at": "2025-03-13T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5cd8deba", "title": "Ruff v0.9.0", "url": "https://astral.sh/blog/ruff-v0.9.0", "published_at": "2025-01-09T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5d45852a", "title": "A new home for python-build-standalone", "url": "https://astral.sh/blog/python-build-standalone", "published_at": "2024-12-03T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5dc048eb", "title": "Ruff v0.8.0", "url": "https://astral.sh/blog/ruff-v0.8.0", "published_at": "2024-11-21T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5ebe7da3", "title": "Ruff v0.7.0", "url": "https://astral.sh/blog/ruff-v0.7.0", "published_at": "2024-10-17T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5eddb644", "title": "uv: Unified Python packaging", "url": "https://astral.sh/blog/uv-unified-python-packaging", "published_at": "2024-08-20T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b5fd72922", "title": "Ruff v0.6.0", "url": "https://astral.sh/blog/ruff-v0.6.0", "published_at": "2024-08-15T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b600cf667", "title": "Announcing the Astral OSS Fund", "url": "https://astral.sh/blog/astral-oss-fund", "published_at": "2024-07-18T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b6047a08c", "title": "Ruff v0.5.0", "url": "https://astral.sh/blog/ruff-v0.5.0", "published_at": "2024-06-27T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b61298b28", "title": "The Ruff Language Server", "url": "https://astral.sh/blog/ruff-v0.4.5", "published_at": "2024-05-22T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b62118838", "title": "Ruff v0.4.0", "url": "https://astral.sh/blog/ruff-v0.4.0", "published_at": "2024-04-18T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b62a8183b", "title": "Ruff v0.3.0", "url": "https://astral.sh/blog/ruff-v0.3.0", "published_at": "2024-02-29T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b63a63b51", "title": "uv: Python packaging in Rust", "url": "https://astral.sh/blog/uv", "published_at": "2024-02-15T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b64838d65", "title": "Ruff v0.2.0", "url": "https://astral.sh/blog/ruff-v0.2.0", "published_at": "2024-02-01T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b64d92eaa", "title": "Ruff v0.1.8", "url": "https://astral.sh/blog/ruff-v0.1.8", "published_at": "2023-12-13T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b65355cbb", "title": "Ruff v0.1.5", "url": "https://astral.sh/blog/ruff-v0.1.5", "published_at": "2023-11-09T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b6626ad3a", "title": "The Ruff Formatter", "url": "https://astral.sh/blog/the-ruff-formatter", "published_at": "2023-10-24T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b6695c9cd", "title": "Ruff v0.1.0", "url": "https://astral.sh/blog/ruff-v0.1.0", "published_at": "2023-10-12T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b66afd136", "title": "Ruff v0.0.292", "url": "https://astral.sh/blog/ruff-v0.0.292", "published_at": "2023-10-05T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b674f6e1a", "title": "Ruff v0.0.285", "url": "https://astral.sh/blog/ruff-v0.0.285", "published_at": "2023-08-17T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b6756ce07", "title": "Ruff v0.0.283", "url": "https://astral.sh/blog/ruff-v0.0.283", "published_at": "2023-08-08T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b67a3b38a", "title": "Ruff v0.0.281", "url": "https://astral.sh/blog/ruff-v0.0.281", "published_at": "2023-07-31T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b67c6c4bd", "title": "Ruff v0.0.278", "url": "https://astral.sh/blog/ruff-v0.0.278", "published_at": "2023-07-12T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b67ea115c", "title": "Ruff v0.0.276", "url": "https://astral.sh/blog/ruff-v0.0.276", "published_at": "2023-07-03T00:00:00+00:00" }, { "id": "01a0b5c5-1f1b-7166-87d6-7a9b6878788c", "title": "Announcing Astral, the company behind Ruff", "url": "https://astral.sh/blog/announcing-astral-the-company-behind-ruff", "published_at": "2023-04-18T00:00:00+00:00" } ] posts Claim your blog
Back to astral.sh
Blog · corpus.blog/blogs/astral.sh/posts

astral.sh

astral.sh

2026

2025

2024

2023