更好的Python C API
项目描述
HPy:更好的Python API
网站: hpyproject.org
社区: HPy Discord服务器
邮件列表: hpy-dev@python.org
摘要
HPy是用于在C中扩展Python的更好的API。旧的C API针对CPython的当前实现。它公开了很多内部细节,这使得它很难
- 为其他Python实现(例如PyPy、GraalPy、Jython、IronPython等)实现它:
- 在CPython本身内部尝试新事物:例如使用GC而不是引用计数,或移除GIL
- 保证二进制稳定性
HPy是Python扩展的新API和ABI规范,与Python实现无关,旨在隐藏和抽象内部细节,以便它
- 即使底层Python内部发生重大变化,也能保持二进制兼容性
- 不会阻碍CPython和其他Python的内部进步
请阅读文档以获取更多关于HPy动机、目标和功能的信息,例如
- 调试模式以提供更好的开发者体验
- 支持从CPython API到HPy的增量迁移
- CPython ABI以在CPython上获得原始性能
- 以及其他功能
想看看HPy API在代码中的样子吗?请查看我们的快速入门示例。
您可能还对HPy的API参考感兴趣。
此存储库包含CPython解释器的API和ABI规范及其实现。支持原生HPy的其他解释器(如GraalPy和PyPy)提供了它们自己的内置HPy实现。
我为什么要关心这些内容呢?
-
现有的C API正在成为CPython以及语言本身进化的一个问题:这个项目使得进行实验成为可能,这些实验可能会在未来“官方”采用
-
对于PyPy来说,它将带来明显的速度优势:例如,数据科学家将能够同时获得快速C库和快速Python代码的好处,这是目前难以实现的事情
-
当前的实现过于依赖于CPython,并且已被证明对几乎所有其他替代实现都是一个问题。拥有一个设计用于在两个不同实现上良好工作的API将使未来的工作更加容易:从2到N比从1到2要容易得多
-
可以说,它比庞大的CPython C API更容易学习和理解
参见Victor Stinner的《Python性能:过去、现在、未来》。
HPy
是什么意思?
HPy
中的"H"代表"handle"(句柄):新API的一个关键思想是使用完全不可见句柄来表示和传递Python对象。
捐赠给HPy
成为财务贡献者,帮助我们维持HPy社区:捐赠给HPy。
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建的分发
hpy-0.9.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4545310f3a7f9ac249c0f19a80a9b05f46565afb62b7e9225b79493b7b6c70cc |
|
MD5 | df3950d91a50d1a6845c5811849b7197 |
|
BLAKE2b-256 | 1ea84bea72ae9292abf33910f2568d8318e11a72353327aecc3c41c38a916773 |
hpy-0.9.0-cp311-cp311-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a4da5eb577c80b820e50ccdcd63b9739ce128784d297047d04954c18c3d383a |
|
MD5 | e10b5dccb24ba0f222106c4b76db2d9d |
|
BLAKE2b-256 | 8f317061c437d01aeb08b126eafec143e13afb7da0f172d63e49d17254fe2397 |
hpy-0.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 48b42aff81a6797ad01d314940d8aadddedeb987c42f00453079553c15fbf70a |
|
MD5 | 890659b8d3bfa0fad1d262fca670de9f |
|
BLAKE2b-256 | 20c4056a3b9618efa6114b4698e8418fdaae1336eab4f319e31f30e96a9cc05d |
hpy-0.9.0-cp311-cp311-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6fe2d66854185a265beb025a914bdb19d7b76ae0bb30ee0eb74019f4911931b7 |
|
MD5 | 937c96970e209e62b64d40dd4012b01e |
|
BLAKE2b-256 | fdd57e9368b3820da8ebc01391f75afecda5199b6883223ec4d6909c9a7f1dbb |
hpy-0.9.0-cp310-cp310-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e9c830946e5e9249069f02b179a4ed8ca56d96409966585b235ad6128b809b49 |
|
MD5 | 54bc76bdd3b925aefefeb2719ed164c1 |
|
BLAKE2b-256 | 1a4193169022443235d12555fd8069d421969adcaf92695cc5d2617ab0f8cfe3 |
hpy-0.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 365b0837d6e0a6aff9ee8960cc9a5f2ff0e1f99c5509f4d85c887145a097285b |
|
MD5 | e550740617a530d5d68b6060373412c5 |
|
BLAKE2b-256 | 8f69442b24743e9d7af218de214e7c2eaea2fbb01b88cb7b7481a119b691f247 |
hpy-0.9.0-cp310-cp310-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c5097364c4356444b0cefaad463d270a20a90ae0700b29122d68fabbbd5ac5cf |
|
MD5 | da3311d01d81c6bfb321c9c87bab5605 |
|
BLAKE2b-256 | f898d276a77d726d5c0a8af45fb40c228a02676afafe2c1fcd684fd70d9d7911 |
hpy-0.9.0-cp39-cp39-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e49dab221111e49f719b8f17769eae4d233924038e1567c3deca230ff10fa89 |
|
MD5 | 0a3ef4eb20874b8a3382ed8ac9d11704 |
|
BLAKE2b-256 | 12676c50e7a4ade23548a90d069cdd936f89b9848a27d92456905481b7c98790 |
hpy-0.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0901040f1563cda561c19bad8b94cbc548d28ace43d02cb50a12c4d20ef1a089 |
|
MD5 | eeba0bc7e5f74c54dacb8bda797ad498 |
|
BLAKE2b-256 | 985be972702a6c420d3c1ff1dbf7f3474e44403c68ee4fe16ba8d7ecbcbf4fac |
hpy-0.9.0-cp39-cp39-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3ff1048e837e0568b6cfbd3d3148f82ea9e9a535f835d4f5f36e9537b9b7b159 |
|
MD5 | 62d2ca83ba448ad07072b17032d23b81 |
|
BLAKE2b-256 | 71b623ce30bbf321a031d8a5046e8befa2dcec4fbf49da440617ae096f412f49 |
hpy-0.9.0-cp38-cp38-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d71fc3676b285ef5058c43c4b478278cf7965387f4c10117c36e946db5c65a3e |
|
MD5 | a00c4b4722eab714834e0f03011f1dc7 |
|
BLAKE2b-256 | b2e7c5aea7f962c937b0d5975c37a56db363cd22c81bf9735b02a6cb1cb22ced |
哈希值 用于 hpy-0.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8455223916b29c6c9f6ba5893e2063e340d2d508a619b261e41013bddb30718f |
|
MD5 | 3209dff62709855cc650fa88e885afec |
|
BLAKE2b-256 | af35c15087e31af04f2176cfc5eaeeeac93be2f1717f7bec66757d5f08df1263 |