github.com/metadsl/egg-smol-python ↗
Python bindings for the egglog rust library
Open this visualization on its own page →
Contributors
2
Lines of Code
445
From
2022-11-02
To
2023-04-12
About metadsl/egg-smol-python
egglog-python provides Python bindings for the egglog Rust library, bringing equality saturation and e-graph-based optimization techniques to Python developers. E-graphs are a data structure for storing multiple equivalent expressions compactly, and equality saturation is a technique that automatically finds optimizations by exploring equivalences between terms. This package allows users to apply these powerful program analysis and transformation techniques directly within Python without needing to write Rust code.
The library enables optimization, symbolic computation, and analysis workflows by exposing egglog's core functionality through a Pythonic interface. It's designed for developers and researchers working on compiler optimizations, term rewriting, domain-specific languages, and other symbolic computation tasks. The project is well-documented with comprehensive documentation, has an active community on the e-graphs Zulip chat, and is published on PyPI for easy installation. The authors have published an academic paper on the work, presented at EGRAPHS@PLDI 2023, establishing it as a serious tool for the research and programming languages community.