Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
128 lines (122 loc) · 3.79 KB
/
Copy pathpyproject.toml
File metadata and controls
128 lines (122 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
[project]
name = "rsloop"
version = "0.1.65"
description = "An event loop for asyncio written in Rust"
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.10"
authors = [
{ name = "Yehor Smoliakov <egorsmkv@gmail.com>" },
]
keywords = ["asyncio", "event-loop", "pyo3", "python", "rust"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3.15",
"Programming Language :: Python :: Free Threading :: 2 - Beta",
"Programming Language :: Rust",
"Topic :: Software Development :: Libraries",
"Topic :: System :: Networking",
]
[project.urls]
Homepage = "https://github.com/RustedBytes/rsloop"
Issues = "https://github.com/RustedBytes/rsloop/issues"
Repository = "https://github.com/RustedBytes/rsloop"
[dependency-groups]
dev = [
"maturin>=1.14.1",
"mkdocs>=1.6.1",
"pyright>=1.1.400",
"ruff>=0.15.19",
"rust-just>=1.54.0",
"typing-extensions>=4.0",
{ include-group = "test" },
]
# Optional library/framework scripts in tests/integration/packages. Native dependencies
# here may not support every interpreter in the core test matrix.
integration = [
"aiohttp>=3.14.3",
"aiosqlite>=0.20.0",
"anyio>=4.14.2",
"beanie>=2.0.0",
# Patched Autobahn requires Python 3.11+, so Daphne is unavailable on 3.10.
"autobahn>=26.7.1; python_version >= '3.11'",
"daphne>=4.2.3; python_version >= '3.11'",
"django>=5.2.17,<6; python_version < '3.12'",
"django>=6.1.1; python_version >= '3.12'",
"edgy>=0.30.0",
"falcon>=4.1.0",
"fastapi>=0.124.4",
"faststream[nats]>=0.5.48",
"granian>=1.6.4",
"hypercorn>=0.17.3",
"litestar>=2.24.0",
"mangum>=0.21.0",
"ormar>=0.22.0",
"piccolo>=1.30.0",
"quart>=0.19.9",
"sanic>=23.12.1,<24; python_version < '3.10'",
"sanic>=25.3.0; python_version >= '3.10'",
"sqlalchemy[asyncio]>=2.0.0",
"sqlmodel>=0.0.24",
"starlette>=0.44.0",
"tortoise-orm>=1.0.0",
"uvicorn>=0.33.0",
]
# Reproducible downstream lifecycle tests, separate from framework smoke scripts.
ecosystem = [
"asyncpg>=0.31.0",
{ include-group = "test" },
"maturin>=1.14.1",
"aiohttp>=3.14.3",
"httpx>=0.28.1",
"sqlalchemy[asyncio]>=2.0.38",
"aiosqlite>=0.20.0",
"uvloop>=0.23.0; sys_platform != 'win32'",
]
# Core pytest dependencies, including on free-threaded Python.
test = [
"pytest>=8.4",
"pytest-mock>=3.14",
"typing-extensions>=4.0",
"websockets>=13.0",
]
[build-system]
requires = ["maturin>=1.9.4,<2"]
build-backend = "maturin"
[tool.uv]
# Security floors for transitive integration dependencies.
constraint-dependencies = [
"mako>=1.4.2",
"multidict>=6.9.1",
"pymongo>=4.18.2",
"werkzeug>=3.1.9",
]
[tool.maturin]
include = ["python/rsloop/_loop.pyi"]
module-name = "rsloop._loop"
python-source = "python"
[tool.pytest.ini_options]
addopts = ["-m", "not tooling and not ecosystem"]
markers = [
"ecosystem: downstream async library lifecycle contracts (requires ecosystem group)",
"slow_network: real operating-system network behavior that may be slow",
"stress: correctness tests with an optional high-repetition profile",
"tooling: tests for repository benchmark and test infrastructure",
]
# tests/integration/packages/*_test.py are standalone, optional integration scripts.
python_files = ["test_*.py"]
pythonpath = ["."]
testpaths = ["tests"]