This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author oconnor663
Recipients Zooko.Wilcox-O'Hearn, christian.heimes, corona10, jstasiak, kmaork, larry, oconnor663, xtreak
Date 2021-04-20.00:48:14
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1618879696.53.0.706338556346.issue39298@roundup.psfhosted.org>
In-reply-to
Content
Hey Christian, yes these are new bindings, and also incomplete. See comments in https://github.com/oconnor663/cpython/commit/dc6f6163ad9754c9ad53e9e3f3613ca3891a77ba, but in short only x86-64 Unix is in working order. If 3.10 doesn't seem realistic, I'm happy to go the PyPI route. That said, this is my first time using the Python C API. (My code in that branch is going to make that pretty obvious.) Could you recommend any existing packages that I might be able to use as a model?

For OpenSSL, I'm very interested in the abstract but less familiar with their project and their schedules. Who might be a good person to get in touch with?

> I assume there's a completely generic platform-agnostic C implementation, for build environments where the assembly won't work, yes?

Yes, that's the vendored file blake3_portable.c. One TODO for my branch here is convincing the Python build system not to try to compile the x86-64-specific stuff on other platforms. The vendored file blake3_dispatch.c abstracts over all the different implementations and takes care of #ifdef'ing platform-specific function calls. (It also does runtime CPU feature detection on x86.)

> written using the Rust implementation, which I understand is even more performant

A few details here: The upstream Rust and C implementations have been matched in single threaded performance for a while now. They share the same assembly files, and the rest is a direct port. The big difference is that Rust also includes multithreading support, using the Rayon work-stealing runtime. The blake3-py module based on the Rust crate exposes this with a simple boolean flag, though we've been thinking about ways to give the caller more control over the number of threads used.
History
Date User Action Args
2021-04-20 00:48:16oconnor663setrecipients: + oconnor663, larry, christian.heimes, Zooko.Wilcox-O'Hearn, jstasiak, corona10, xtreak, kmaork
2021-04-20 00:48:16oconnor663setmessageid: <1618879696.53.0.706338556346.issue39298@roundup.psfhosted.org>
2021-04-20 00:48:16oconnor663linkissue39298 messages
2021-04-20 00:48:14oconnor663create