{"full_name":"ray-project/ray","owner":"ray-project","name":"ray","url":"https://github.com/ray-project/ray","description":"Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.","homepage":"https://ray.io","topics":[],"language":"Python","license":"Apache-2.0","avatar":"https://avatars.githubusercontent.com/u/22125274?v=4","created_at":"2016-10-25T19:38:30Z","pushed_at":"2026-11-10T09:33:45Z","metrics":{"stars":44247,"forks":8262,"watchers":481,"issues":23296,"prs":44196,"releases":134,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":0},"growth":{"day":{"stars":6,"forks":3,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[44241,44247],"forks":[8259,8262],"watchers":[481,481],"issues_open":[null,null],"prs_open":[null,null]},"boards":{},"same_owner":[],"issues":[{"number":30012,"title":"[Core]  Failed to register worker . Slurm - srun -","comments":66,"created_at":"2022-11-04T04:28:48Z"},{"number":65879,"title":"[Serve] [RFC] Computed Retry-After for backpressure rejections","comments":41,"created_at":"2026-09-03T02:28:28Z"},{"number":59522,"title":"[data][llm] LLM Batch Inference Resiliency Thread","comments":38,"created_at":"2025-12-17T23:26:46Z"},{"number":29412,"title":"[Ray Core] Ray agent getting killed unexpectedly","comments":38,"created_at":"2022-10-17T21:14:54Z"},{"number":27421,"title":"Ray with PyInstaller","comments":34,"created_at":"2022-08-03T09:25:29Z"},{"number":50961,"title":"[Feedback] Feedback for ray + uv","comments":32,"created_at":"2025-02-27T21:33:22Z"},{"number":15893,"title":"[autoscaler] 'ray up' disconnects when setting up head node on AWS","comments":32,"created_at":"2021-05-18T23:15:01Z"},{"number":18053,"title":"[core] occasional Ray port conflict issue","comments":31,"created_at":"2021-08-24T20:36:18Z"}],"discussions":[],"latest_release":{"name":"Ray-2.60.0","tag":"ray-2.60.0","published_at":"2026-11-04T02:08:53Z","body":"# Highlights\r\n\r\n* **Ray Data shuffle and Parquet reads:** In this Ray release, shuffle v2 is the default shuffle strategy for joins, aggregations (\\#66260). Parquet reads now size read tasks from the row-group metadata in each file's footer instead of estimating from file size, so read tasks are packed to an accurate byte budget (\\#65596, \\#65806, \\#65821).  \r\n* **Ray Serve rolling updates:** We've added `max_surge_percent`, which starts replacement replicas before stopping old ones so a rolling update doesn't reduce serving capacity (\\#66267). A rolling update whose new replicas keep failing now stops at `DEPLOY_FAILED` and leaves the remaining old replicas routable, instead of replacing every healthy replica (\\#66252, \\#66290).  \r\n* **Security:** Ray Data now rejects pickled-object columns in every reader that deserializes Arrow data from external input, closing a remote code execution path in the LeRobot, Databricks, Iceberg, Hugging Face, ClickHouse, BigQuery, and Delta Sharing readers (\\#66042, \\#65769). Ray images and wheel builds pin `certifi` 2026.10.19 and pip 26.2.2 after the eMudhra CA compromise, and `aiohttp` moves to 3.14.4 for CVE-2026-111064 and CVE-2026-111066 (\\#67295, \\#67298, \\#67301, \\#67304, \\#67305, \\#67350).\r\n\r\n# Ray Data\r\n\r\n### 🎉 New Features\r\n\r\n* Add `Dataset.write_orc()` for writing ORC files (\\#65453)  \r\n* Add an `unnest()` expression that expands a struct-valued expression or column into one column per field (\\#65241)  \r\n* Add `min_bytes_per_file` to `write_parquet` to combine small blocks toward a target output file size (\\#65636)  \r\n* Support nested schema evolution in `write_delta` through `schema_mode` (\\#65858)  \r\n* Support appending a subset of columns to an existing Lance dataset (\\#64474)  \r\n* Add a rate-based cluster autoscaler that scales from measured operator throughput, now the default (\\#65954)  \r\n* Add a backlog-aware actor-pool autoscaler, now the default; `RAY_DATA_ACTOR_AUTOSCALER=DEFAULT` restores the old one (\\#66035)  \r\n* Make checkpoint restore pluggable through `CheckpointConfig.checkpoint_manager_cls` and `checkpoint_filter_cls` (\\#65676)  \r\n* Add the `ray.data.list_stats_summaries()` developer API for execution stats of completed datasets (\\#66294)  \r\n* Add a logical memory usage chart to the Ray Data dashboard (\\#66044)\r\n\r\n### 💫 Enhancements\r\n\r\n* Keep pandas metadata on Arrow blocks parsable by pandas (\\#67576)  \r\n  Make shuffle v2 the default, add task-based shuffle v2 for `sort`, and rename external shuffle to disk shuffle (\\#66260, \\#64875, \\#66367)  \r\n* Read Parquet footers to bin-pack read tasks by row group, and use one reader thread per fragment (\\#65596, \\#65806, \\#65821, \\#65169)  \r\n* Use Polars streaming joins for in-partition joins with one Polars thread per reducer, and Polars in `hash_partitions` (\\#66075, \\#66341, \\#66269)  \r\n* Make actor pools node-aware: skip actors on draining nodes and refresh actor locations after restarts (\\#66109)  \r\n* Count lineage reconstruction tasks in task-pool resource usage so Data doesn't over-submit under object loss (\\#66217)  \r\n* Default GPU map operators to `num_cpus=1` when `num_cpus` is unspecified; set `num_cpus=0` to opt out (\\#66202)  \r\n* Speed up aggregations, sorts, row access, and tensor-to-pandas conversion by cutting per-row work and copies (\\#66194, \\#66120, \\#66246, \\#66254, \\#66116, \\#66219, \\#64961, \\#66122, \\#65796)  \r\n* Break `ds.stats()` UDF time into input prep, function body, and output build, optionally per fused stage (\\#65807, \\#65810)  \r\n* Warn when an operator's configured `memory` is below 1.25x its observed max USS (\\#65512)  \r\n* Add an opt-in per-operator release interval for `OutputBackpressureGuard` (\\#65202)  \r\n* Track autoscaling coordinator reservations per node (\\#66001, \\#66370)  \r\n* Defer loading `pyarrow.dataset` on `import ray.data` (\\#66463)  \r\n* Fetch only each read task's root bundles in `read_lerobot` (\\#65284)  \r\n* Clearer errors for S3 `ACCESS_DENIED` writes, partition value casts,"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}