mirror of
https://gitee.com/fantix/kloop.git
synced 2024-11-25 11:50:59 +00:00
v0.0.1: Initial project structure
This commit is contained in:
commit
9cdc246ca9
13 changed files with 283 additions and 0 deletions
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
/.idea/
|
||||||
|
/.python-version
|
||||||
|
/build/
|
||||||
|
/dist/
|
||||||
|
/src/**/__pycache__/
|
||||||
|
/tests/**/__pycache__/
|
||||||
|
/src/**/*.c
|
||||||
|
/src/**/*.so
|
||||||
|
/src/kloop.egg-info/
|
155
LICENSE
Normal file
155
LICENSE
Normal file
|
@ -0,0 +1,155 @@
|
||||||
|
版权所有 (c) 2022 王川 http://fantix.pro
|
||||||
|
Copyright (c) 2022 Fantix King http://fantix.pro
|
||||||
|
|
||||||
|
|
||||||
|
木兰宽松许可证
|
||||||
|
第2版,2020年1月
|
||||||
|
http://license.coscl.org.cn/MulanPSL2
|
||||||
|
|
||||||
|
您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条
|
||||||
|
款的约束:
|
||||||
|
|
||||||
|
0. 定义
|
||||||
|
|
||||||
|
“软件” 是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
|
||||||
|
|
||||||
|
“贡献” 是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
|
||||||
|
|
||||||
|
“贡献者” 是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
|
||||||
|
|
||||||
|
“法人实体” 是指提交贡献的机构及其“关联实体”。
|
||||||
|
|
||||||
|
“关联实体” 是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机
|
||||||
|
构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有
|
||||||
|
价证券。
|
||||||
|
|
||||||
|
1. 授予版权许可
|
||||||
|
|
||||||
|
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤
|
||||||
|
销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。
|
||||||
|
|
||||||
|
2. 授予专利许可
|
||||||
|
|
||||||
|
每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤
|
||||||
|
销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销
|
||||||
|
售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将
|
||||||
|
来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯
|
||||||
|
的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联
|
||||||
|
实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或
|
||||||
|
交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的
|
||||||
|
专利许可自您提起诉讼或发起维权行动之日终止。
|
||||||
|
|
||||||
|
3. 无商标许可
|
||||||
|
|
||||||
|
“本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但
|
||||||
|
您为满足第4条规定的声明义务而必须使用除外。
|
||||||
|
|
||||||
|
4. 分发限制
|
||||||
|
|
||||||
|
您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但
|
||||||
|
您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声
|
||||||
|
明。
|
||||||
|
|
||||||
|
5. 免责声明与责任限制
|
||||||
|
|
||||||
|
“软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”
|
||||||
|
或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担
|
||||||
|
责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。
|
||||||
|
|
||||||
|
6. 语言
|
||||||
|
|
||||||
|
“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲
|
||||||
|
突不一致,以中文版为准。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Mulan Permissive Software License
|
||||||
|
Version 2 (Mulan PSL v2), January 2020
|
||||||
|
http://license.coscl.org.cn/MulanPSL2
|
||||||
|
|
||||||
|
|
||||||
|
Your reproduction, use, modification and distribution of theSoftware
|
||||||
|
shall be subject to Mulan PSL v2 (this License) with the following
|
||||||
|
terms and conditions:
|
||||||
|
|
||||||
|
0. Definition
|
||||||
|
|
||||||
|
Software means the program and related documents which are
|
||||||
|
licensed under this License and comprise all Contribution(s).
|
||||||
|
|
||||||
|
Contribution means the copyrightable work licensed by a particular
|
||||||
|
Contributor under this License.
|
||||||
|
|
||||||
|
Contributor means the Individual or Legal Entity who licenses its
|
||||||
|
copyrightable work under this License.
|
||||||
|
|
||||||
|
Legal Entity means the entity making a Contribution and all its
|
||||||
|
Affiliates.
|
||||||
|
|
||||||
|
Affiliates means entities that control, are controlled by, or are
|
||||||
|
under common control with the acting entity under this License,
|
||||||
|
‘control’ means direct or indirect ownership of at least fifty
|
||||||
|
percent (50%) of the voting power, capital or other securities of
|
||||||
|
controlled or commonly controlled entity.
|
||||||
|
|
||||||
|
1. Grant of Copyright License
|
||||||
|
|
||||||
|
Subject to the terms and conditions of this License, each
|
||||||
|
Contributor hereby grants to you a perpetual, worldwide,
|
||||||
|
royalty-free, non-exclusive, irrevocable copyright license to
|
||||||
|
reproduce, use, modify, or distribute its Contribution, with
|
||||||
|
modification or not.
|
||||||
|
|
||||||
|
2. Grant of Patent License
|
||||||
|
|
||||||
|
Subject to the terms and conditions of this License, each
|
||||||
|
Contributor hereby grants to you a perpetual, worldwide,
|
||||||
|
royalty-free, non-exclusive, irrevocable (except for revocation
|
||||||
|
under this Section) patent license to make, have made, use, offer
|
||||||
|
for sale, sell, import or otherwise transfer its Contribution,
|
||||||
|
where such patent license is only limited to the patent claims
|
||||||
|
owned or controlled by such Contributor now or in future which
|
||||||
|
will be necessarily infringed by its Contribution alone, or by
|
||||||
|
combination of the Contribution with the Software to which the
|
||||||
|
Contribution was contributed. The patent license shall not apply
|
||||||
|
to any modification of the Contribution, and any other combination
|
||||||
|
which includes the Contribution. If you or your Affiliates
|
||||||
|
directly or indirectly institute patent litigation (including a
|
||||||
|
cross claim or counterclaim in a litigation) or other patent
|
||||||
|
enforcement activities against any individual or entity by
|
||||||
|
alleging that the Software or any Contribution in it infringes
|
||||||
|
patents, then any patent license granted to you under this License
|
||||||
|
for the Software shall terminate as of the date such litigation or
|
||||||
|
activity is filed or taken.
|
||||||
|
|
||||||
|
3. No Trademark License
|
||||||
|
|
||||||
|
No trademark license is granted to use the trade names,
|
||||||
|
trademarks, service marks, or product names of Contributor, except
|
||||||
|
as required to fulfill notice requirements in section 4.
|
||||||
|
|
||||||
|
4. Distribution Restriction
|
||||||
|
|
||||||
|
You may distribute the Software in any medium with or without
|
||||||
|
modification, whether in source or executable forms, provided that
|
||||||
|
you provide recipients with a copy of this License and retain
|
||||||
|
copyright, patent, trademark and disclaimer statements in the
|
||||||
|
Software.
|
||||||
|
|
||||||
|
5. Disclaimer of Warranty and Limitation of Liability
|
||||||
|
|
||||||
|
THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT
|
||||||
|
WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT
|
||||||
|
SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY
|
||||||
|
DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT,
|
||||||
|
SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR
|
||||||
|
INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER
|
||||||
|
HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
6. Language
|
||||||
|
|
||||||
|
THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE
|
||||||
|
CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL
|
||||||
|
EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH
|
||||||
|
VERSIONS, THE CHINESE VERSION SHALL PREVAIL.
|
4
MANIFEST.in
Normal file
4
MANIFEST.in
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
recursive-include src *.pyx *.pxd
|
||||||
|
graft tests
|
||||||
|
global-exclude *.py[cod] *.c
|
||||||
|
|
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# kLoop
|
||||||
|
|
||||||
|
kLoop is an implementation of the Python asyncio event loop written in Cython,
|
||||||
|
using io_uring and kTLS features of the Linux kernel, open-sourced and released
|
||||||
|
under the MulanPSL - 2.0 license.
|
3
pyproject.toml
Normal file
3
pyproject.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[build-system]
|
||||||
|
requires = ["setuptools>=42", "Cython>=0.29"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
24
setup.cfg
Normal file
24
setup.cfg
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
[metadata]
|
||||||
|
name = kLoop
|
||||||
|
version = 0.0.1
|
||||||
|
author = Fantix King
|
||||||
|
author_email = fantix.king@gmail.com
|
||||||
|
description = An asyncio event loop using Linux io_uring and kTLS.
|
||||||
|
long_description = file: README.md
|
||||||
|
long_description_content_type = text/markdown
|
||||||
|
url = https://github.com/fantix/kloop
|
||||||
|
project_urls =
|
||||||
|
Bug Tracker = https://github.com/fantix/kloop/issues
|
||||||
|
classifiers =
|
||||||
|
Programming Language :: Python :: 3
|
||||||
|
License :: OSI Approved
|
||||||
|
Operating System :: POSIX :: Linux
|
||||||
|
|
||||||
|
[options]
|
||||||
|
package_dir =
|
||||||
|
= src
|
||||||
|
packages = find:
|
||||||
|
python_requires = >=3.8
|
||||||
|
|
||||||
|
[options.packages.find]
|
||||||
|
where = src
|
24
setup.py
Normal file
24
setup.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Copyright (c) 2022 Fantix King http://fantix.pro
|
||||||
|
# kLoop is licensed under Mulan PSL v2.
|
||||||
|
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
# You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
# http://license.coscl.org.cn/MulanPSL2
|
||||||
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the Mulan PSL v2 for more details.
|
||||||
|
|
||||||
|
|
||||||
|
from Cython.Build import cythonize
|
||||||
|
from Cython.Distutils import Extension
|
||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
setup(
|
||||||
|
ext_modules=cythonize(
|
||||||
|
[
|
||||||
|
Extension("kloop.uring", ["src/kloop/uring.pyx"]),
|
||||||
|
Extension("kloop.ktls", ["src/kloop/ktls.pyx"]),
|
||||||
|
],
|
||||||
|
language_level="3",
|
||||||
|
)
|
||||||
|
)
|
10
src/kloop/__init__.py
Normal file
10
src/kloop/__init__.py
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Copyright (c) 2022 Fantix King http://fantix.pro
|
||||||
|
# kLoop is licensed under Mulan PSL v2.
|
||||||
|
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
# You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
# http://license.coscl.org.cn/MulanPSL2
|
||||||
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the Mulan PSL v2 for more details.
|
||||||
|
|
10
src/kloop/ktls.pxd
Normal file
10
src/kloop/ktls.pxd
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Copyright (c) 2022 Fantix King http://fantix.pro
|
||||||
|
# kLoop is licensed under Mulan PSL v2.
|
||||||
|
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
# You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
# http://license.coscl.org.cn/MulanPSL2
|
||||||
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the Mulan PSL v2 for more details.
|
||||||
|
|
10
src/kloop/ktls.pyx
Normal file
10
src/kloop/ktls.pyx
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Copyright (c) 2022 Fantix King http://fantix.pro
|
||||||
|
# kLoop is licensed under Mulan PSL v2.
|
||||||
|
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
# You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
# http://license.coscl.org.cn/MulanPSL2
|
||||||
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the Mulan PSL v2 for more details.
|
||||||
|
|
10
src/kloop/uring.pxd
Normal file
10
src/kloop/uring.pxd
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Copyright (c) 2022 Fantix King http://fantix.pro
|
||||||
|
# kLoop is licensed under Mulan PSL v2.
|
||||||
|
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
# You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
# http://license.coscl.org.cn/MulanPSL2
|
||||||
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the Mulan PSL v2 for more details.
|
||||||
|
|
10
src/kloop/uring.pyx
Normal file
10
src/kloop/uring.pyx
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Copyright (c) 2022 Fantix King http://fantix.pro
|
||||||
|
# kLoop is licensed under Mulan PSL v2.
|
||||||
|
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
# You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
# http://license.coscl.org.cn/MulanPSL2
|
||||||
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the Mulan PSL v2 for more details.
|
||||||
|
|
9
tests/test_loop.py
Normal file
9
tests/test_loop.py
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from kloop import uring, ktls
|
||||||
|
|
||||||
|
|
||||||
|
class TestLoop(unittest.TestCase):
|
||||||
|
def test_loop(self):
|
||||||
|
self.assertIsNotNone(uring)
|
||||||
|
self.assertIsNotNone(ktls)
|
Loading…
Reference in a new issue