{"collection":{"slug":"js-toolchain","name":"JavaScript Runtimes & Tooling"},"digest":{"id":"cwd_xf6b6hpyB1GdajR5LAIV6","weekStart":"2026-08-03","title":"Turborepo embraces uv, Deno streams Blob text","intro":"Python and uv workspaces land in Turborepo while Deno adds Blob text streaming and a QuickJS backend, both runtimes pushing hard on monorepo and JS compatibility fronts.","body":"### The Python and uv wave in Turborepo\n\nThe biggest story this week is Turborepo's decisive move beyond Node-only monorepos. The stable [v2.10.9 release](/release/rel_mjPNyrskyXL_QqByQiFiH-turborepo-v2-10-9-adds-python-quality-tasks-and-fixes-windows-process-cleanup) introduces Python quality tasks, letting you synthesize, hash, and build task graphs from declared Python tooling. That means a `lint` or `test` defined for a Python package now gets the same caching and orchestration as its TypeScript siblings, closing a long-standing gap for polyglot repos.\n\nThe canary that preceded it, [v2.10.9-canary.1](/release/rel_77d27YsTfm2xcqReX3xPM-turborepo-v2-10-9-canary-1-adds-uv-workspace-support-and-speeds-glob-resolution), goes even further with native uv workspace support — discovery, execution, hashing, watching, and pruning all work with uv out of the box. If you're on the canary track, this is a preview of where the stable release is heading, and it pairs nicely with the Python task synthesis already landed. The fact that Python and uv support arrived within days of each other signals Vercel is treating the non-Node world as a first-class surface, not an afterthought.\n\nUnderneath the headline features, both releases share a meaningful performance theme: glob resolution now walks literal-prefix trees without wax compilation, which should cut down cold-cache startup time in large repos. The stable release also fixes a Windows process-cleanup PID-reuse bug that could kill the wrong process, a Git ignore invalidation issue, and various package-filter and task-composition edge cases. The canary additionally accepts semver ranges in `devEngines.packageManager.version` and falls back to polling on macOS. If you've been waiting to standardize Python tooling in a Turborepo workspace, this is the week to test it.\n\n### Deno closes the Node gap, quietly\n\nDeno's [v2.9.5](/release/rel_S3s6P9Z-XF3xg7-ic_SnZ-deno-v2-9-5-adds-blob-textstream-quickjs-backend-and-node-22-style-fixes) is a quieter release but no less substantive. The headliner is the new `Blob.textStream()` and `Body.textStream()` API, giving you a streaming way to read large text payloads without materializing the whole buffer — a natural companion to the existing `arrayBuffer()` and `stream()` methods, and handy for parsing large JSON or CSV responses chunk by chunk.\n\nMore experimental is the new QuickJS backend, a lighter-footprint JavaScript engine alternative. It's early days, but it opens the door to smaller memory profiles for embedded or constrained environments where V8's overhead is a poor fit. The same release adds `--unscoped` for aliasing packages by their unscoped name in `deno add` and `--members` to run tasks against workspace members only — small DX wins that align with the workspace ergonomics Turborepo is also chasing this week.\n\nThe bulk of the changelog is the usual Node-compatibility grind: dozens of fixes across `node:` modules, net, and websockets. Two worth calling out are backpressure fixes in `Readable.toWeb()` — which matter if you're piping between streams — and corrected DNS permission handling for `node:dns.getServers()`, so it no longer prompts for permissions it doesn't actually need.\n\n### Two runtimes, one direction\n\nNeither project is slowing down. Turborepo is widening the definition of what a monorepo can contain, while Deno keeps shaving edges off Node compatibility and adding streaming primitives. For a developer moving between Python, uv, and JS in the same repo, or one streaming large payloads in Deno, this week offers concrete reasons to upgrade.","releaseIds":["rel_mjPNyrskyXL_QqByQiFiH","rel_77d27YsTfm2xcqReX3xPM","rel_S3s6P9Z-XF3xg7-ic_SnZ"],"releaseCount":3,"generatedAt":"2026-08-10T06:19:55.061Z","releases":[{"id":"rel_mjPNyrskyXL_QqByQiFiH","title":"Turborepo v2.10.9 adds Python quality tasks and fixes Windows process cleanup","path":"/release/rel_mjPNyrskyXL_QqByQiFiH-python-quality-tasks-land-windows-pid-reuse-fixed","org":{"slug":"vercel","name":"Vercel"},"importance":3},{"id":"rel_77d27YsTfm2xcqReX3xPM","title":"Turborepo v2.10.9-canary.1 adds uv workspace support and speeds glob resolution","path":"/release/rel_77d27YsTfm2xcqReX3xPM-uv-workspaces-discovered-and-run-natively-glob-walk-skips-wax","org":{"slug":"vercel","name":"Vercel"},"importance":3},{"id":"rel_S3s6P9Z-XF3xg7-ic_SnZ","title":"Deno v2.9.5 adds Blob textStream, QuickJS backend, and Node 22-style fixes","path":"/release/rel_S3s6P9Z-XF3xg7-ic_SnZ-blob-textstream-and-quickjs-backend-added-node-compat-fixes","org":{"slug":"deno","name":"Deno"},"importance":3}]}}