{"package":"ray","ecosystem":"pypi","latest_version":"2.55.0","description":"Ray provides a simple, universal API for building distributed applications.","license":"Apache 2.0","homepage":"https://github.com/ray-project/ray","repository":"https://github.com/ray-project/ray","downloads_weekly":11631215,"health":{"score":85,"risk":"low","breakdown":{"maintenance":25,"popularity":20,"security":23,"maturity":15,"community":2},"deprecated":false,"max_score":100},"vulnerabilities":{"count":2,"critical":0,"high":0,"medium":1,"low":1,"details":[{"vuln_id":"CVE-2023-48022","severity":"medium","summary":"Ray has arbitrary code execution via jobs submission API","affected_versions":">=0","fixed_version":null,"source":"osv","published_at":"2023-11-28T09:30:26Z"},{"vuln_id":"CVE-2025-34351","severity":"unknown","summary":"Ray's New Token Authentication is Disabled By Default","affected_versions":">=0","fixed_version":null,"source":"osv","published_at":"2025-11-27T03:30:26Z"}]},"versions":{"latest":"2.55.0","total_count":143,"recent":["2.44.1","2.45.0","2.46.0","2.47.0","2.47.1","2.48.0","2.49.0","2.49.1","2.49.2","2.50.0","2.50.1","2.51.0","2.51.1","2.51.2","2.52.0","2.52.1","2.53.0","2.54.0","2.54.1","2.55.0"]},"metadata":{"deprecated":false,"deprecated_message":null,"maintainers_count":1,"first_published":null,"last_published":"2026-04-15T04:31:24.774823Z","dependencies_count":253,"dependencies":["click>=7.0","filelock","jsonschema","msgpack<2.0.0,>=1.0.0","packaging>=24.2","protobuf>=3.20.3","pyyaml","requests","cupy-cuda12x; sys_platform != \"darwin\" and extra == \"cgraph\"","grpcio!=1.56.0; sys_platform == \"darwin\" and extra == \"client\"","grpcio; extra == \"client\"","numpy>=1.20; extra == \"data\"","pandas>=1.3; extra == \"data\"","pyarrow>=9.0.0; extra == \"data\"","fsspec; extra == \"data\"","aiohttp>=3.13.3; extra == \"default\"","aiohttp_cors; extra == \"default\"","colorful; extra == \"default\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"default\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"default\"","requests; extra == \"default\"","grpcio>=1.42.0; extra == \"default\"","opencensus; extra == \"default\"","opentelemetry-sdk>=1.30.0; extra == \"default\"","opentelemetry-exporter-prometheus; extra == \"default\"","opentelemetry-proto; extra == \"default\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"default\"","prometheus_client>=0.7.1; extra == \"default\"","smart_open; extra == \"default\"","virtualenv!=20.21.1,>=20.0.24; extra == \"default\"","memray; sys_platform != \"win32\" and extra == \"observability\"","starlette; extra == \"serve\"","smart_open; extra == \"serve\"","opentelemetry-proto; extra == \"serve\"","opencensus; extra == \"serve\"","fastapi; extra == \"serve\"","aiohttp_cors; extra == \"serve\"","uvicorn[standard]; extra == \"serve\"","prometheus_client>=0.7.1; extra == \"serve\"","requests; extra == \"serve\"","colorful; extra == \"serve\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"serve\"","grpcio>=1.42.0; extra == \"serve\"","aiohttp>=3.13.3; extra == \"serve\"","opentelemetry-sdk>=1.30.0; extra == \"serve\"","opentelemetry-exporter-prometheus; extra == \"serve\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"serve\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"serve\"","virtualenv!=20.21.1,>=20.0.24; extra == \"serve\"","watchfiles; extra == \"serve\"","pandas; extra == \"tune\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"tune\"","tensorboardX>=1.9; extra == \"tune\"","requests; extra == \"tune\"","pyarrow>=9.0.0; extra == \"tune\"","fsspec; extra == \"tune\"","cupy-cuda12x; sys_platform != \"darwin\" and extra == \"adag\"","starlette; extra == \"serve-grpc\"","smart_open; extra == \"serve-grpc\"","opentelemetry-proto; extra == \"serve-grpc\"","opencensus; extra == \"serve-grpc\"","pyOpenSSL; extra == \"serve-grpc\"","fastapi; extra == \"serve-grpc\"","aiohttp_cors; extra == \"serve-grpc\"","uvicorn[standard]; extra == \"serve-grpc\"","prometheus_client>=0.7.1; extra == \"serve-grpc\"","requests; extra == \"serve-grpc\"","colorful; extra == \"serve-grpc\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"serve-grpc\"","grpcio>=1.42.0; extra == \"serve-grpc\"","aiohttp>=3.13.3; extra == \"serve-grpc\"","opentelemetry-sdk>=1.30.0; extra == \"serve-grpc\"","opentelemetry-exporter-prometheus; extra == \"serve-grpc\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"serve-grpc\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"serve-grpc\"","virtualenv!=20.21.1,>=20.0.24; extra == \"serve-grpc\"","watchfiles; extra == \"serve-grpc\"","starlette; extra == \"serve-async-inference\"","smart_open; extra == \"serve-async-inference\"","opentelemetry-proto; extra == \"serve-async-inference\"","taskiq; extra == \"serve-async-inference\"","opencensus; extra == \"serve-async-inference\"","fastapi; extra == \"serve-async-inference\"","aiohttp_cors; extra == \"serve-async-inference\"","uvicorn[standard]; extra == \"serve-async-inference\"","prometheus_client>=0.7.1; extra == \"serve-async-inference\"","requests; extra == \"serve-async-inference\"","colorful; extra == \"serve-async-inference\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"serve-async-inference\"","grpcio>=1.42.0; extra == \"serve-async-inference\"","aiohttp>=3.13.3; extra == \"serve-async-inference\"","opentelemetry-sdk>=1.30.0; extra == \"serve-async-inference\"","celery; extra == \"serve-async-inference\"","opentelemetry-exporter-prometheus; extra == \"serve-async-inference\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"serve-async-inference\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"serve-async-inference\"","virtualenv!=20.21.1,>=20.0.24; extra == \"serve-async-inference\"","watchfiles; extra == \"serve-async-inference\"","ray-cpp==2.55.0; extra == \"cpp\"","pandas; extra == \"rllib\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"rllib\"","tensorboardX>=1.9; extra == \"rllib\"","requests; extra == \"rllib\"","pyarrow>=9.0.0; extra == \"rllib\"","fsspec; extra == \"rllib\"","dm_tree; extra == \"rllib\"","gymnasium==1.2.2; extra == \"rllib\"","lz4; extra == \"rllib\"","ormsgpack>=1.7.0; extra == \"rllib\"","pyyaml; extra == \"rllib\"","scipy; extra == \"rllib\"","pandas; extra == \"train\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"train\"","tensorboardX>=1.9; extra == \"train\"","requests; extra == \"train\"","pyarrow>=9.0.0; extra == \"train\"","fsspec; extra == \"train\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"train\"","starlette; extra == \"air\"","smart_open; extra == \"air\"","opentelemetry-proto; extra == \"air\"","pyarrow>=9.0.0; extra == \"air\"","pandas; extra == \"air\"","numpy>=1.20; extra == \"air\"","fsspec; extra == \"air\"","opencensus; extra == \"air\"","pandas>=1.3; extra == \"air\"","fastapi; extra == \"air\"","aiohttp_cors; extra == \"air\"","uvicorn[standard]; extra == \"air\"","prometheus_client>=0.7.1; extra == \"air\"","requests; extra == \"air\"","colorful; extra == \"air\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"air\"","grpcio>=1.42.0; extra == \"air\"","aiohttp>=3.13.3; extra == \"air\"","opentelemetry-sdk>=1.30.0; extra == \"air\"","tensorboardX>=1.9; extra == \"air\"","opentelemetry-exporter-prometheus; extra == \"air\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"air\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"air\"","virtualenv!=20.21.1,>=20.0.24; extra == \"air\"","watchfiles; extra == \"air\"","starlette; extra == \"all\"","smart_open; extra == \"all\"","opentelemetry-proto; extra == \"all\"","scipy; extra == \"all\"","pyarrow>=9.0.0; extra == \"all\"","memray; sys_platform != \"win32\" and extra == \"all\"","pandas; extra == \"all\"","numpy>=1.20; extra == \"all\"","fsspec; extra == \"all\"","taskiq; extra == \"all\"","opencensus; extra == \"all\"","pyOpenSSL; extra == \"all\"","pandas>=1.3; extra == \"all\"","fastapi; extra == \"all\"","pyyaml; extra == \"all\"","aiohttp_cors; extra == \"all\"","uvicorn[standard]; extra == \"all\"","cupy-cuda12x; sys_platform != \"darwin\" and extra == \"all\"","prometheus_client>=0.7.1; extra == \"all\"","ormsgpack>=1.7.0; extra == \"all\"","grpcio!=1.56.0; sys_platform == \"darwin\" and extra == \"all\"","lz4; extra == \"all\"","requests; extra == \"all\"","colorful; extra == \"all\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"all\"","dm_tree; extra == \"all\"","grpcio>=1.42.0; extra == \"all\"","aiohttp>=3.13.3; extra == \"all\"","opentelemetry-sdk>=1.30.0; extra == \"all\"","tensorboardX>=1.9; extra == \"all\"","gymnasium==1.2.2; extra == \"all\"","grpcio; extra == \"all\"","celery; extra == \"all\"","opentelemetry-exporter-prometheus; extra == \"all\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"all\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"all\"","virtualenv!=20.21.1,>=20.0.24; extra == \"all\"","watchfiles; extra == \"all\"","starlette; extra == \"all-cpp\"","smart_open; extra == \"all-cpp\"","opentelemetry-proto; extra == \"all-cpp\"","scipy; extra == \"all-cpp\"","pyarrow>=9.0.0; extra == \"all-cpp\"","memray; sys_platform != \"win32\" and extra == \"all-cpp\"","pandas; extra == \"all-cpp\"","numpy>=1.20; extra == \"all-cpp\"","fsspec; extra == \"all-cpp\"","taskiq; extra == \"all-cpp\"","opencensus; extra == \"all-cpp\"","pyOpenSSL; extra == \"all-cpp\"","pandas>=1.3; extra == \"all-cpp\"","fastapi; extra == \"all-cpp\"","pyyaml; extra == \"all-cpp\"","aiohttp_cors; extra == \"all-cpp\"","uvicorn[standard]; extra == \"all-cpp\"","cupy-cuda12x; sys_platform != \"darwin\" and extra == \"all-cpp\"","prometheus_client>=0.7.1; extra == \"all-cpp\"","ormsgpack>=1.7.0; extra == \"all-cpp\"","grpcio!=1.56.0; sys_platform == \"darwin\" and extra == \"all-cpp\"","ray-cpp==2.55.0; extra == \"all-cpp\"","lz4; extra == \"all-cpp\"","requests; extra == \"all-cpp\"","colorful; extra == \"all-cpp\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"all-cpp\"","dm_tree; extra == \"all-cpp\"","grpcio>=1.42.0; extra == \"all-cpp\"","aiohttp>=3.13.3; extra == \"all-cpp\"","opentelemetry-sdk>=1.30.0; extra == \"all-cpp\"","tensorboardX>=1.9; extra == \"all-cpp\"","gymnasium==1.2.2; extra == \"all-cpp\"","grpcio; extra == \"all-cpp\"","celery; extra == \"all-cpp\"","opentelemetry-exporter-prometheus; extra == \"all-cpp\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"all-cpp\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"all-cpp\"","virtualenv!=20.21.1,>=20.0.24; extra == \"all-cpp\"","watchfiles; extra == \"all-cpp\"","starlette; extra == \"llm\"","smart_open; extra == \"llm\"","opentelemetry-proto; extra == \"llm\"","pyarrow>=9.0.0; extra == \"llm\"","numpy>=1.20; extra == \"llm\"","fsspec; extra == \"llm\"","opencensus; extra == \"llm\"","jsonschema; extra == \"llm\"","pandas>=1.3; extra == \"llm\"","fastapi; extra == \"llm\"","ninja; extra == \"llm\"","meson; extra == \"llm\"","aiohttp_cors; extra == \"llm\"","uvicorn[standard]; extra == \"llm\"","nixl>=1.0.0; extra == \"llm\"","prometheus_client>=0.7.1; extra == \"llm\"","watchfiles; extra == \"llm\"","async-timeout; python_version < \"3.11\" and extra == \"llm\"","jsonref>=1.1.0; extra == \"llm\"","requests; extra == \"llm\"","colorful; extra == \"llm\"","pydantic!=2.0.*,!=2.1.*,!=2.10.*,!=2.11.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,<3; extra == \"llm\"","vllm[audio]>=0.18.0; extra == \"llm\"","grpcio>=1.42.0; extra == \"llm\"","aiohttp>=3.13.3; extra == \"llm\"","typer; extra == \"llm\"","opentelemetry-sdk>=1.30.0; extra == \"llm\"","hf_transfer; extra == \"llm\"","opentelemetry-exporter-prometheus; extra == \"llm\"","py-spy>=0.2.0; python_version < \"3.12\" and extra == \"llm\"","py-spy>=0.4.0; python_version >= \"3.12\" and extra == \"llm\"","virtualenv!=20.21.1,>=20.0.24; extra == \"llm\"","pybind11; extra == \"llm\""]},"recommendation":{"action":"safe_to_use","issues":[],"use_version":"2.55.0","version_hint":null,"summary":"ray@2.55.0 is safe to use (health: 85/100)"},"requested_version":null,"_cache":"miss","_response_ms":369,"_powered_by":"depscope.dev — free package intelligence for AI agents"}