https://github.com/evolvinglmms-lab/lean-runner
https://github.com/evolvinglmms-lab/lean-runner
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/evolvinglmms-lab/lean-runner
- Owner: EvolvingLMMs-Lab
- Created: 2025-08-03T03:41:34.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-07T05:40:26.000Z (11 months ago)
- Last Synced: 2025-08-07T06:17:48.565Z (11 months ago)
- Language: Python
- Homepage: https://evolvinglmms-lab.github.io/lean-runner/
- Size: 991 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://lean-runner.vercel.app/)
[](https://pypi.org/project/lean-server/)
[](https://pypi.org/project/lean-runner/)
[](https://hub.docker.com/r/pufanyi/lean-server)
[](https://www.python.org/downloads/release/python-3120/)
[](https://lean-lang.org/doc/reference/4.22.0-rc4/releases/v4.22.0/)
[](https://github.com/leanprover-community/mathlib4/releases/tag/v4.22.0-rc4)
[](https://fastapi.tiangolo.com)
[](LICENSE)
---
## Why Lean-Runner?
- **π Plug & Play**: Get started in minutes with Docker's one-click server setup. Our intuitive client abstracts away complex implementation details, letting you focus on what mattersβyour Lean proofs.
- **β‘ High Performance**: Leverages REPL-based atomized execution with fully asynchronous, multi-threaded architecture to maximize CPU utilization and throughput.
- **π‘οΈ Robust & Reliable**: Persistent SQLite logging ensures your work is never lost. Built-in crash recovery and automatic retry mechanisms eliminate the frustration of interrupted workflows.
- **π Flexible Access Patterns**: Choose between synchronous and asynchronous clients depending on your use caseβfrom interactive development to large-scale batch processing.
- **π§ Smart Caching**: Intelligent content-based hashing ensures identical Lean code is processed only once, dramatically reducing computation time for repeated operations.
- **π Data Export & Visualization (Soon)**: Easily export data in various formats (Hugging Face, JSON, XML, Arrow, Parquet) and visualize queries with a simple CLI.
## Getting Started
Check the [quick start](https://lean-runner.vercel.app/quick-start/) guide for detailed instructions on how to get started with Lean-Runner.
## Architecture
Lean-Runner leverages a powerful Server-Client architecture that smartly places all the complex configuration on the server side, while keeping the client implementation elegantly minimal. We've packaged the entire server using [Docker](https://www.docker.com/), making deployment incredibly straightforward and hassle-free.

## Project Structure
```text
lean-runner/
βββ packages/
β βββ server/ # FastAPI server implementation
β β βββ lean_server/
β β βββ app/ # API endpoints and server setup
β β βββ proof/ # Lean proof execution logic
β β βββ manager/ # Proof job management
β β βββ config/ # Configuration files and loading
β β βββ database/ # SQLite persistence layer
β β βββ utils/ # Utility functions
β βββ client/ # Python client libraries
β βββ lean_runner/
β βββ client/ # Sync and async client implementations
β βββ proof/ # Proof data protocol
βββ playground/ # Lean workspace with dependencies
βββ demo/ # Example scripts and test files
```
## Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Citation
```bibtex
@misc{fanyi2025leanrunner,
title={Lean-Runner: Deploying High-Performance Lean 4 Server in One Click},
author={Fanyi Pu, Oscar Qian, Jinghao Guo, Bo Li},
year={2025},
publisher={GitHub},
howpublished={\url{https://github.com/EvolvingLMMs-Lab/lean-runner}},
}
```