Skip to content

[RFC]: Python Binding Roadmap #214

@1a1a11a

Description

@1a1a11a

Python Binding Roadmap

Current Status

We've made good progress on the Python bindings, supporting basic structures and eviction policy creation:

  1. Core Simulation Structs: We now support Python bindings for essential simulation structures:

    • cache_t
    • reader_t
    • request_t
  2. 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

Sub-issues

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions