Skip to content

raven-ml/raven

Repository files navigation

Raven

Modern scientific computing for OCaml.

Raven is a comprehensive ecosystem that brings scientific computing capabilities to OCaml, designed for teams who need both rapid prototyping and production-ready systems.

We're prioritizing developer experience and competitive performance to give developers a real choice beyond Python for scientific computing.

Note: Raven is currently in pre-alpha. We're actively seeking user feedback to shape the project's direction. Please open issues or reach out by email!

The Ecosystem

Raven is built from modular projects that form a cohesive ecosystem:

Core Libraries:

Raven Project Python Equivalent Description
Nx NumPy N-dimensional arrays with pluggable backends
Hugin Matplotlib Publication-quality data visualization and plotting
Quill Jupyter A love letter to scientific writing

Rune Ecosystem:

Raven Project Python Equivalent Description
Rune JAX Autodiff with multi-device support and JIT compilation
Kaun PyTorch/Flax Deep learning framework built on Rune
Sowilo OpenCV Computer vision framework built on Rune

Why Raven?

  • Ship reliable systems: Strong typing catches bugs that would crash your ML pipeline in production
  • Stop rewriting code: Prototype and deploy in the same language, no more "Python for research, X for production"
  • Match Python's performance: JIT compilation designed to compete with NumPy and PyTorch, not just beat them by 20%
  • Built for developers: Notebooks that feel like writing documents, intuitive APIs, and an ecosystem designed to work seamlessly together
  • Designed for extension: Pluggable backends, modular architecture, and building blocks you can actually extend and customize

Documentation

📖 Read the Introduction - Learn about our vision, philosophy, and approach

More comprehensive documentation and examples are coming soon as we are heading towards the release.

Contributing

Raven is in active development and we welcome contributions from the community!

Ways to Contribute:

  • Share feedback - Open issues or email us with your thoughts on APIs, performance, or developer experience
  • Test the libraries - Try Raven libraries with your workflows and report what works (or breaks)
  • Improve documentation - Help us make the docs clearer and more comprehensive
  • Build new libraries - Interested in creating any of the planned libraries below? Let's collaborate!

Future Libraries (Open for Contributions): For our first release, we're focused on the foundation (Nx, Hugin, Quill) and the deep learning vertical (Rune, Kaun). These areas are planned for future development:

  • DataFrame library (Pandas equivalent)
  • Statistical computing (R-like statistical functions)
  • Time series analysis and geospatial computing
  • Distributed computing (Dask equivalent)

Whether you're an OCaml expert or new to the language, we'd love your help building the future of scientific computing in OCaml!

See our CONTRIBUTING.md for detailed guidelines.

License

Raven is available under the ISC License, making it free for both personal and commercial use.