mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Dataevaluationupdated 28 Aug 2026

ray review

Ray is a Python framework for running work across multiple CPU or GPU processes, machines, and clusters. It gives developers one runtime for distributed tasks, stateful actors, shared objects, and higher-level libraries for data processing, training, tuning, reinforcement learning, and serving.

+30 / 3dstars / 7d
Verdict

Our source build failed in 13 seconds, and pytest reached 200 collection or setup errors before running a single test. That does not erase Ray's broad, coherent distributed-computing design, but it does mean teams should evaluate the packaged installation separately from contributor setup. Use Ray when one Python runtime genuinely needs to span data, training, tuning, serving, or custom distributed actors; skip it when a task queue or focused data engine solves the whole problem.

We ran it

Install✓ · 16s35 packages · 37 MB
Build✗ · 13s
Tests✗ · 9s0 passed · 0 failed · 200 errors of 200 (pytest)
Known vulns0(pip-audit)
Repo10353 files~1,665,881 lines of source · 371.1 MB · 4 CI workflows

Answers from our run

Does ray build from source?

Dependencies installed in 16 seconds (35 packages), and the build failed. We cloned commit edc419a into a clean Debian container with 3 CPUs and no project-specific setup.

Do ray's tests pass?

Yes: 0 of 200 passed when we ran the project's own test command (pytest), with 200 collection errors. Some failures need services or credentials a bare container does not have.

Does ray have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use ray?

Small applications that already fit comfortably on one machine, because Ray adds distributed-system complexity

What are the alternatives to ray?

Dask, Apache Spark, Celery. Our source build failed in 13 seconds, and pytest reached 200 collection or setup errors before running a single test.

Setup2/5Install worked, but build and test collection failed
Docs4/5Clear concepts and extensive linked guides
Community5/543,638 stars and code pushed today
Maturity4/5Long-running project with a recent 2.58.0 release

Discussed on

  1. hnAn experimental distributed execution engine from Berkeley3 points

Who it’s for

Python teams that need to move compute-heavy work from one machine to a cluster
ML platform teams that want training, tuning, data, and serving under one runtime
Engineers building distributed applications around tasks, actors, and shared objects
Kubernetes or cloud teams willing to operate a substantial distributed system

Who it’s NOT for

Small applications that already fit comfortably on one machine, because Ray adds distributed-system complexity
Teams expecting the repository checkout to build and test with a simple generic Python workflow
Polyglot teams seeking a language-neutral compute layer, because the project is centered on Python
Operators who want a tiny dependency footprint or a low-maintenance background queue

Setup reality

Our run installed successfully in 16 seconds, adding 35 packages and 37 MB, but the build exited with code 1 after 13 seconds and pytest stopped after 200 collection or setup errors in 9 seconds, with 0 tests run. That is much rougher than the README's simple pip install ray line suggests for contributors: installing the published package may be straightforward, while validating a 10,353-file source checkout clearly needs a project-specific environment and test path that the top-level introduction does not explain.

Ray unifies several kinds of distributed Python work

Ray addresses a real transition point: a Python program works on a laptop, then its data, training job, or inference traffic outgrows one machine. Ray provides a distributed runtime beneath a family of AI libraries. Its core vocabulary is compact: tasks are stateless functions, actors are stateful worker processes, and objects are immutable values available across a cluster. That makes the project broader than a job queue.

Our checkout contained 10,353 files, about 1,665,881 lines of source, and occupied 371.1 MB. Ray Data handles datasets, Train covers distributed training, Tune handles hyperparameter searches, RLlib covers reinforcement learning, and Serve handles programmable serving. The framework says it runs on a machine, cluster, cloud provider, or Kubernetes, so adopting Ray means choosing a common execution layer for a meaningful part of an AI platform.

What happened when we ran it

Our run used commit edc419a in a fresh, unprivileged Debian container with Python 3.12, 3 CPUs, 8 GB of RAM, and no secrets. Installation succeeded in 16 seconds: 35 packages were installed and consumed 37 MB. The build exited with code 1 after 13 seconds. Its final displayed lines were Python SyntaxWarning messages in python/ray/llm/tests/common/cloud/test_utils.py about using is with the integer literal -1. Those lines do not establish that the warnings caused the failure.

Pytest failed after 9 seconds during collection or setup. It ran 0 tests, reported 0 passed and 0 failed, accumulated 200 errors, and stopped. The final entries included release tests and workloads for Serve autoscaling, Train checkpointing, Horovod, Hugging Face integrations, and local Torch mode. We cannot infer one shared cause. A generic repository-wide pytest invocation was not a usable health check in this container, and the top-level README does not provide the contributor prerequisites needed to avoid that result.

The security scan was cleaner: pip-audit found 0 known vulnerabilities. We found 4 CI workflow files, no Dockerfile, and no top-level tests directory. These signals show that the project's own automation and conventions matter. Installing a release from PyPI differs from collecting every test in a large monorepo. The README's pip install ray instruction describes the first step in our run, not the full source-validation journey.

The strongest reason to choose it is one shared runtime

Ray's most persuasive feature is architectural consistency. A team can express stateless units as tasks, retain state in actors, and pass immutable objects without designing a coordination layer first. The higher-level libraries reuse that base for datasets, training, tuning, reinforcement learning, and serving. For organizations crossing several boundaries, this can reduce the unrelated execution systems developers must understand. Dashboard and Distributed Debugger links acknowledge that operators also need to diagnose a cluster.

The README links material for Ray Core and each of its 5 named AI libraries, plus architecture papers and papers on distributed futures, data shuffling, RLlib, and Tune. It points toward a forum, GitHub Issues, Slack, Stack Overflow, and a meetup. Stated response estimates range from under 1 day on the forum to 3-5 days on Stack Overflow, though those are project claims, not independently measured results.

Source setup and operational scope are the rough edges

The clearest weakness is the gap between installing Ray and validating it from source. A one-line package install worked, but the generic build and test path did not. Since the logs do not identify a root cause, blaming Python 3.12, system packages, or the container would be speculation. Contributors should find dedicated development instructions and reproduce supported CI slices before treating repository-wide pytest as meaningful. Evaluators should prototype their workload rather than treat our collection failure as a runtime benchmark.

Ray also carries distributed-computing costs: object movement, cluster lifecycle, observability, failure recovery, and capacity planning. With 3,542 open issues, buyers should search for blockers in their library and deployment target. That count signals a huge support surface, not automatically poor maintenance. The repository was pushed on 2026-08-28, release ray-2.58.0 arrived on 2026-08-23, and the project has 43,638 stars. Recent code and a five-day-old release are strong health signals, while issue resolution speed needs case-by-case checking.

It belongs in the compute layer, not every Python service

In a real stack, Ray belongs underneath compute-heavy Python applications and beside storage, model, monitoring, identity, and network systems. Ray Serve can own programmable serving, while Data, Train, Tune, or RLlib can share cluster resources. Its tools provide Ray-specific visibility, but teams still need broader production controls. Kubernetes can be a deployment target, yet Ray does not remove the need to operate surrounding infrastructure.

Choose it when at least 2 capabilities converge in one platform, or when custom task and actor patterns are central. Choose Dask for familiar parallel collections, Spark for a SQL-heavy data estate, Celery for ordinary background jobs, or Prefect for workflow orchestration. If all you need is to send emails, schedule ETL, or parallelize one dataframe, Ray's breadth is likely overhead rather than an advantage.

Alternatives

ProjectWhat it isPick it when
DaskParallel Python computing with familiar collection APIs and task scheduling.Pick this instead when your work is mainly dataframe, array, or task-graph computation and you want APIs close to pandas or NumPy.
Apache SparkA mature distributed engine focused on large-scale data processing and analytics.Pick this instead when SQL, batch ETL, streaming, and a JVM-centered data platform matter more than Python-native actors or ML serving.
CeleryA distributed task queue for asynchronous jobs and scheduled background work.Pick this instead when you need conventional application job queues, retries, and workers rather than a general compute runtime.
Prefect gh↗A Python workflow orchestrator for scheduling and observing data pipelines.Pick this instead when workflow states, schedules, and operational orchestration are the main problem, not fine-grained distributed execution.

What people are saying

  1. [velocity-scout] ray-project/ray
  2. [theverge] Grab the entire Lord of the Rings trilogy on 4K Blu-ray for $50
  3. [mastodon-trends] Ray Dalio on the AI bubble nearing 1929, 2000 levels and the lesson people always forget: ‘Wealth is not the same as money’
  4. [hackernews] Ray Bradbury's "There Will Come Soft Rains" is set today (2026-08-04)

Sources

  1. Ray GitHub repository
  2. Ray homepage

More data reviews

turso · TrackersListCollection · dash · getcontact-cli · awesome-zhuiju-free · iggy · the whole board →