mirror of
https://gitee.com/fantix/kloop.git
synced 2024-11-22 02:11:01 +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