Iris finds a path between any two Wikipedia pages by traversing their links.
You give it two page titles — say, "Banana" and "Shah Rukh Khan" — and it walks Wikipedia's link graph using BFS until it finds the connection. Results are visualized as an interactive graph you can drag around.
It uses bidirectional BFS (default) which searches simultaneously from both pages toward each other using Wikipedia backlinks, meeting in the middle for faster results. You can also use standard forward-only BFS if preferred. Redis stores the search state instead of holding everything in memory, which keeps it from blowing up on deep searches.
- Find Wikipedia paths via bidirectional BFS (default) or standard forward-only BFS
- Async task processing — searches run in the background, results polled live
- Real-time progress updates during search (aggregated from both search frontiers)
- Interactive D3.js graph visualization of the path
git clone https://github.com/mdhishaamakhtar/iris
cd iris
uv sync
./dev.shThen open http://localhost:9020.
Swagger docs at http://localhost:9020/api/docs.
| Script | When to use |
|---|---|
dev.sh |
Local development — starts Redis (if needed), Flask, and Celery in one terminal |
start.sh |
Manual production-like run on a single host (both web + worker) |
entrypoint.sh |
Docker/Railway container entry — switches on SERVICE_TYPE env var |
uv run pytest # run tests
uv run pytest --cov=app --cov-report=term-missing # run tests with coverage
uv run pytest --cov=app --cov-report=html # generate HTML coverage report (open htmlcov/index.html)
uv run ruff format . # format
uv run ruff check . # lint
uv run ty check # type checkMade with ❤️ by DSC VIT