Python Binding Roadmap
Current Status
We've made good progress on the Python bindings, supporting basic structures and eviction policy creation:
-
Core Simulation Structs: We now support Python bindings for essential simulation structures:
cache_t
reader_t
request_t
-
Eviction Policy Integration: You can create caches with specific eviction algorithms using two methods:
- Python Classes (Limited but with Parameter Hints): Dedicated Python classes are available for the following algorithms, offering clear parameter hints:
- ARC
- FIFO
- LRB
- LRU
- S3FIFO
- Clock
- Sieve
- ThreeLCache
- TinyLFU
- TwoQ
- Generic Python Method: The
create_cache method uses cache_init from cache_sim and accepts the algorithm name as a string to invoke it.
Next Steps (Prioritized)
Here's what's next on our Python binding roadmap:
- Implement Basic Analysis Capabilities: Enable core analysis functionalities directly within the Python bindings.
- Full Feature Support for Basic Structs: Expand the bindings to include all features and functionalities of the
cache_t, reader_t, and request_t structs.
- Add More Eviction Algorithm Classes: Introduce additional Python classes for other eviction algorithms, providing the same clear parameter hints as existing ones.
- Create a PyPI package for our python binding -> need to decide the name
Originally posted by @haochengxia in #123
Originally posted by @haochengxia in #123