Home

Awesome

Ziggy Pydust

<p align="center"> <a href="https://pydust.fulcrum.so"> <img src="https://pydust.fulcrum.so/assets/ziggy-pydust.png" style="border-radius: 20px" /> </a> </p> <p align="center"> <em>A framework for writing and packaging native Python extension modules written in Zig.</em> </p> <p align="center"> <a href="https://github.com/fulcrum-so/ziggy-pydust/actions" target="_blank"> <img src="https://img.shields.io/github/actions/workflow/status/fulcrum-so/ziggy-pydust/ci.yml?branch=develop&logo=github&style=" alt="Actions"> </a> <a href="https://pypi.org/project/ziggy-pydust" target="_blank"> <img src="https://img.shields.io/pypi/v/ziggy-pydust" alt="Package version"> </a> <a href="https://docs.python.org/3/whatsnew/3.11.html" target="_blank"> <img src="https://img.shields.io/pypi/pyversions/ziggy-pydust" alt="Python version"> </a> <a href="https://github.com/fulcrum-so/ziggy-pydust/blob/develop/LICENSE" target="_blank"> <img src="https://img.shields.io/github/license/fulcrum-so/ziggy-pydust" alt="License"> </a> </p>

Documentation: <a href="https://pydust.fulcrum.so/latest" target="_blank">https://pydust.fulcrum.so/latest</a>

API: <a href="https://pydust.fulcrum.so/latest/zig" target="_blank">https://pydust.fulcrum.so/latest/zig</a>

Source Code: <a href="https://github.com/fulcrum-so/ziggy-pydust" target="_blank">https://github.com/fulcrum-so/ziggy-pydust</a>

Template: <a href="https://github.com/fulcrum-so/ziggy-pydust-template" target="_blank">https://github.com/fulcrum-so/ziggy-pydust-template</a>


Ziggy Pydust is a framework for writing and packaging native Python extension modules written in Zig.

const py = @import("pydust");

pub fn fibonacci(args: struct { n: u64 }) u64 {
    if (args.n < 2) return args.n;

    var sum: u64 = 0;
    var last: u64 = 0;
    var curr: u64 = 1;
    for (1..args.n) {
        sum = last + curr;
        last = curr;
        curr = sum;
    }
    return sum;
}

comptime {
    py.rootmodule(@This());
}

Compatibility

Pydust supports:

Please reach out if you're interested in helping us to expand compatibility.

Getting Started

Pydust docs can be found here. Zig documentation (beta) can be found here.

There is also a template repository including Poetry build, Pytest and publishing from Github Actions.

Contributing

We welcome contributions! Pydust is in its early stages so there is lots of low hanging fruit when it comes to contributions.

License

Pydust is released under the Apache-2.0 license.