Source: https://seerepo.com/compare/microsoft/promptflow/vs/ray-project/ray
Markdown source: https://seerepo.com/compare/microsoft/promptflow/vs/ray-project/ray.md
Description: promptflow and ray share 24 technologies: Flask, FastAPI, azure-storage-blob, pyarrow, flask-cors, starlette, AIOHTTP, uvicorn, SQLAlchemy, azure-identity, pyjwt, cryptography, keyring, nltk, rouge-score, tiktoken, LangChain, jinja2, pillow, strictyaml, jsonschema, azure-core, OpenTelemetry, and psutil. Both are written in Python.

# promptflow vs ray

promptflow and ray share 24 technologies: Flask, FastAPI, azure-storage-blob, pyarrow, flask-cors, starlette, AIOHTTP, uvicorn, SQLAlchemy, azure-identity, pyjwt, cryptography, keyring, nltk, rouge-score, tiktoken, LangChain, jinja2, pillow, strictyaml, jsonschema, azure-core, OpenTelemetry, and psutil. Both are written in Python.

- [microsoft/promptflow](https://seerepo.com/r/microsoft/promptflow): Build high-quality LLM apps - from prototyping, testing to production deployment and monitoring.
- [ray-project/ray](https://seerepo.com/r/ray-project/ray): Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads.

## What they share and what sets them apart

- In common: Flask, FastAPI, azure-storage-blob, pyarrow, flask-cors, starlette, AIOHTTP, uvicorn, SQLAlchemy, azure-identity, pyjwt, cryptography, keyring, nltk, rouge-score, tiktoken, LangChain, jinja2, pillow, strictyaml, jsonschema, azure-core, OpenTelemetry, psutil
- Only in promptflow: azure-cosmos, azure-search-documents, OpenAI, flask-restx, Streamlit, azure-ai-ml, faiss-cpu, pypdf2, bs4, filetype, marshmallow, waitress
- Only in ray: aimrecords, aimrocks, amqp, array-record, arro3-core, async-lru, azure-common, azure-datalake-store, confluent-kafka, delta-kernel-rust-sharing-wrapper, diskcache, expiringdict, feather-format, gitdb, google-cloud-core, h5py, huey, kombu, partd, pickleshare, py-partiql-parser, pylance, pymongo, s3torchconnectorclient, s3transfer, taskiq, tensorboard-data-server, zict, mcap, aioboto3, MongoDB, Redis, adlfs, pyiceberg, smart-open, pymysql, clickhouse-connect, daft, deltalake, gcsfs, lance-namespace, obstore, Celery, delta-sharing, fastavro, hudi, pyzmq, s3fs, s3torchconnector, taskiq-redis, webdataset, Google, Hugging Face, Google Cloud Storage, Kafka, Databricks, adagio, asgiref, graphene, graphql-core, graphql-relay, jupyter-core, jupyterlab-server, pygame, pymars, werkzeug, Ray, pyspark, Lightning, raydp, anyio, tornado, React, react-router-dom, accessible-pygments, alabaster, cycler, fonttools, jupyterlab-pygments, pydata-sphinx-theme, soupsieve, sphinx-design, tinycss2, aim-ui, alive-progress, bokeh, contourpy, glfw, halo, jupyter-server-terminals, jupyterlab-widgets, matplotlib-inline, Plotly, prompt-toolkit, pyglet, pyopengl, spinners, Textual, widgetsnbextension, xyzservices, Gradio, ipywidgets, matplotlib, Rich, pydot, alembic, peewee, sqlglot, adal, argon2-cffi, argon2-cffi-bindings, flask-basicauth, gcs-oauth2-boto-plugin, google-auth-oauthlib, google-oauth, google-reauth, id, itsdangerous, joserfc, jwcrypto, msal, msal-extensions, oauth2client, oauthlib, pyu2f, requests-oauthlib, google-auth-httplib2, albucore, autograd, ax-platform, bayesian-optimization, bitsandbytes, botorch, cma, cmdstanpy, crcmod, cupy-cuda100, cupy-cuda12x, cupy-cuda13x, einops, fairscale, gpytorch, gradio-client, gym, jaxlib, labmaze, lightning-utilities, linear-operator, llvmlite, lm-eval, minigrid, ml-dtypes, mlflow-skinny, moocore, mosaicml, ONNX, onnx-ir, onnxruntime, onnxscript, openai-whisper, opt-einsum, optax, orbax-checkpoint, peft, prophet, pymoo, pyro-ppl, pytorch-ranger, sacrebleu, safetensors, scikit-image, sentencepiece, skops, stanio, statsforecast, tensorflow-estimator, tf-keras, timm, tokenizers, torch-geometric, torchtext, triton, gymnasium, torch, transformers, TensorFlow, jax, torchvision, xgboost, lightgbm, scikit-learn, MLflow, tensorflow-metadata, accelerate, datasets, pytorch-lightning, comet-ml, dm-env, evaluate, flax, Keras, torchmetrics, aim, albumentations, ale-py, configspace, deepspeed, diffusers, dm-control, hpbandster, hyperopt, nevergrad, open-spiel, Optuna, pettingzoo, supersuit, tensordict, tensorflow-datasets, tensorflow-probability, torchaudio, bleach, defusedxml, et-xmlfile, imageio, imageio-ffmpeg, imagesize, jsonlines, linkify-it-py, lxml, mako, markdown, markdown-it-py, markupsafe, mdit-py-plugins, mdurl, mistune, moviepy, myst-parser, nbconvert, nh3, openpyxl, pandocfilters, readme-renderer, ruamel-yaml, ruamel-yaml-clib, tinyscaler, webencodings, xlrd, xmltodict, docutils, beautifulsoup4, av, decord, jupytext, nbformat, torchcodec, annotated-types, fastjsonschema, fqdn, jsonschema-path, jsonschema-specifications, openapi-spec-validator, pathvalidate, pydantic-core, referencing, rfc3339-validator, rfc3986, rfc3986-validator, validators, Pydantic, openapi-schema-validator, aiobotocore, applicationinsights, aws-sam-translator, aws-xray-sdk, azure-cli-core, azure-cli-telemetry, azure-mgmt-compute, azure-mgmt-core, azure-mgmt-network, azure-mgmt-resource, azure-mgmt-resource-deployments, boto, cloud-tpu-diagnostics, colorlog, execnet, Gunicorn, log-symbols, ml-goodput-measurement, msrestazure, opencensus-context, opentelemetry-api, opentelemetry-instrumentation, opentelemetry-instrumentation-asgi, opentelemetry-semantic-conventions, opentelemetry-util-http, python-json-logger, supervisor, boto3, botocore, prometheus-client, kubernetes, opentelemetry-exporter-prometheus, docker, opentelemetry-exporter-otlp-proto-grpc, opentelemetry-instrumentation-fastapi, ray-haproxy, typeface-roboto, MUI, usehooks-ts, lowlight, react-window, react-icons, @mui/icons-material, js-yaml

## Side by side

| | promptflow | ray |
|---|---|---|
| Size | 325,282 lines written, 526 code files | 1,551,053 lines written, 2,797 code files |
| Who writes it | 0.1% of its commits signed by AI. With GitHub Copilot | 3.7% of its commits signed by AI. With Claude Code, Gemini CLI, GitHub Copilot, Cursor, and Codex |
| Activity | Last push November 11, 2026, 2,289 commits, 11,266 stars | Last push November 10, 2026, 32,424 commits, 44,251 stars |
| Tests | 717 test files. 0.6% of its code files have a test that imports them | 2,192 test files. 9.5% of its code files have a test that imports them |

- Size: Lines written by people and agents, without generated ones; code files, without tests.
- Who writes it: A commit counts as AI's when it carries its signature: a Co-Authored-By line, its author name or the merge of its branch.
- Activity: From GitHub and its history, on the day SeeRepo read it.
- Tests: The files that test the code, and the share of code files a test imports.

## Frequently asked questions

### Which is bigger, promptflow or ray?

ray, with 1,551,053 lines written; promptflow has 325,282.

The proof: [ray-project/ray's code at commit c99c603](https://github.com/ray-project/ray/tree/c99c603464ced6037dad09c46c06e916ec42d1d1)

### Which has more GitHub stars, promptflow or ray?

ray, with 44,251 stars; promptflow has 11,266.

The proof: [ray-project/ray on GitHub](https://github.com/ray-project/ray)

### Which has more tests, promptflow or ray?

ray, with 2,192 test files; promptflow has 717.

The proof: [ray-project/ray's code at commit c99c603](https://github.com/ray-project/ray/tree/c99c603464ced6037dad09c46c06e916ec42d1d1)

### Which was updated more recently, promptflow or ray?

promptflow: its last push was on November 11, 2026, and ray's on November 10, 2026.

The proof: [microsoft/promptflow's commits on GitHub](https://github.com/microsoft/promptflow/commits)

### Which has more commits signed by AI, promptflow or ray?

ray: an AI signed 3.7% of its commits, with Claude Code, Gemini CLI, GitHub Copilot, Cursor, and Codex; in promptflow, 0.1%.

The proof: [the commits each tool signed in ray-project/ray](https://seerepo.com/r/ray-project/ray/ai)

## Sources

- microsoft/promptflow: Read on November 12, 2026, at commit 33a68c9 (https://github.com/microsoft/promptflow/tree/33a68c9d3cf349d7fdfad1f41969af27543c0406)
- ray-project/ray: Read on November 10, 2026, at commit c99c603 (https://github.com/ray-project/ray/tree/c99c603464ced6037dad09c46c06e916ec42d1d1)

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
