vexarr-rivex 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. vexarr_rivex-0.1.1/LICENSE +21 -0
  2. vexarr_rivex-0.1.1/PKG-INFO +109 -0
  3. vexarr_rivex-0.1.1/README.md +88 -0
  4. vexarr_rivex-0.1.1/core/Cargo.lock +3855 -0
  5. vexarr_rivex-0.1.1/core/Cargo.toml +43 -0
  6. vexarr_rivex-0.1.1/core/crates/rivex-http/Cargo.toml +21 -0
  7. vexarr_rivex-0.1.1/core/crates/rivex-http/src/compress.rs +116 -0
  8. vexarr_rivex-0.1.1/core/crates/rivex-http/src/cookie.rs +170 -0
  9. vexarr_rivex-0.1.1/core/crates/rivex-http/src/cors.rs +210 -0
  10. vexarr_rivex-0.1.1/core/crates/rivex-http/src/crypto.rs +319 -0
  11. vexarr_rivex-0.1.1/core/crates/rivex-http/src/embedded.rs +413 -0
  12. vexarr_rivex-0.1.1/core/crates/rivex-http/src/headers.rs +103 -0
  13. vexarr_rivex-0.1.1/core/crates/rivex-http/src/lib.rs +29 -0
  14. vexarr_rivex-0.1.1/core/crates/rivex-http/src/multipart.rs +174 -0
  15. vexarr_rivex-0.1.1/core/crates/rivex-http/src/negotiate.rs +108 -0
  16. vexarr_rivex-0.1.1/core/crates/rivex-http/src/parse.rs +556 -0
  17. vexarr_rivex-0.1.1/core/crates/rivex-http/src/request.rs +174 -0
  18. vexarr_rivex-0.1.1/core/crates/rivex-http/src/response.rs +238 -0
  19. vexarr_rivex-0.1.1/core/crates/rivex-http/src/staticfile.rs +122 -0
  20. vexarr_rivex-0.1.1/core/crates/rivex-middleware/Cargo.toml +19 -0
  21. vexarr_rivex-0.1.1/core/crates/rivex-middleware/src/compress.rs +142 -0
  22. vexarr_rivex-0.1.1/core/crates/rivex-middleware/src/cors.rs +317 -0
  23. vexarr_rivex-0.1.1/core/crates/rivex-middleware/src/https_redirect.rs +45 -0
  24. vexarr_rivex-0.1.1/core/crates/rivex-middleware/src/lib.rs +14 -0
  25. vexarr_rivex-0.1.1/core/crates/rivex-middleware/src/logging.rs +45 -0
  26. vexarr_rivex-0.1.1/core/crates/rivex-middleware/src/pipeline.rs +182 -0
  27. vexarr_rivex-0.1.1/core/crates/rivex-middleware/src/rate_limit.rs +198 -0
  28. vexarr_rivex-0.1.1/core/crates/rivex-python/Cargo.toml +85 -0
  29. vexarr_rivex-0.1.1/core/crates/rivex-python/src/cache.rs +202 -0
  30. vexarr_rivex-0.1.1/core/crates/rivex-python/src/compress.rs +195 -0
  31. vexarr_rivex-0.1.1/core/crates/rivex-python/src/crypto.rs +472 -0
  32. vexarr_rivex-0.1.1/core/crates/rivex-python/src/data_structures.rs +368 -0
  33. vexarr_rivex-0.1.1/core/crates/rivex-python/src/datetime.rs +397 -0
  34. vexarr_rivex-0.1.1/core/crates/rivex-python/src/datetime_ext.rs +117 -0
  35. vexarr_rivex-0.1.1/core/crates/rivex-python/src/encoding.rs +141 -0
  36. vexarr_rivex-0.1.1/core/crates/rivex-python/src/encoding_ext.rs +200 -0
  37. vexarr_rivex-0.1.1/core/crates/rivex-python/src/file_io.rs +164 -0
  38. vexarr_rivex-0.1.1/core/crates/rivex-python/src/gen.rs +1757 -0
  39. vexarr_rivex-0.1.1/core/crates/rivex-python/src/hasher.rs +168 -0
  40. vexarr_rivex-0.1.1/core/crates/rivex-python/src/ids.rs +232 -0
  41. vexarr_rivex-0.1.1/core/crates/rivex-python/src/json.rs +272 -0
  42. vexarr_rivex-0.1.1/core/crates/rivex-python/src/lib.rs +2224 -0
  43. vexarr_rivex-0.1.1/core/crates/rivex-python/src/mw.rs +633 -0
  44. vexarr_rivex-0.1.1/core/crates/rivex-python/src/protocol.rs +591 -0
  45. vexarr_rivex-0.1.1/core/crates/rivex-python/src/re.rs +134 -0
  46. vexarr_rivex-0.1.1/core/crates/rivex-python/src/serde_ext.rs +383 -0
  47. vexarr_rivex-0.1.1/core/crates/rivex-python/src/text.rs +340 -0
  48. vexarr_rivex-0.1.1/core/crates/rivex-python/src/text_ext.rs +226 -0
  49. vexarr_rivex-0.1.1/core/crates/rivex-python/src/validate.rs +170 -0
  50. vexarr_rivex-0.1.1/core/crates/rivex-python/src/validate_ext.rs +144 -0
  51. vexarr_rivex-0.1.1/core/crates/rivex-routing/Cargo.toml +12 -0
  52. vexarr_rivex-0.1.1/core/crates/rivex-routing/src/lib.rs +594 -0
  53. vexarr_rivex-0.1.1/core/crates/rivex-routing/src/tree.rs +221 -0
  54. vexarr_rivex-0.1.1/core/crates/rivex-server/Cargo.toml +25 -0
  55. vexarr_rivex-0.1.1/core/crates/rivex-server/src/handler.rs +199 -0
  56. vexarr_rivex-0.1.1/core/crates/rivex-server/src/lib.rs +162 -0
  57. vexarr_rivex-0.1.1/core/crates/rivex-server/src/listener.rs +197 -0
  58. vexarr_rivex-0.1.1/core/crates/rivex-server/src/sync_server.rs +279 -0
  59. vexarr_rivex-0.1.1/core/crates/rivex-server/src/websocket.rs +157 -0
  60. vexarr_rivex-0.1.1/core/crates/rivex-ws/Cargo.toml +16 -0
  61. vexarr_rivex-0.1.1/core/crates/rivex-ws/src/frame.rs +233 -0
  62. vexarr_rivex-0.1.1/core/crates/rivex-ws/src/lib.rs +57 -0
  63. vexarr_rivex-0.1.1/core/crates/rivex-ws/src/upgrade.rs +83 -0
  64. vexarr_rivex-0.1.1/pyproject.toml +43 -0
  65. vexarr_rivex-0.1.1/python/rivex/__init__.py +16 -0
  66. vexarr_rivex-0.1.1/python/rivex/_core.pyi +155 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Rivex Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,109 @@
1
+ Metadata-Version: 2.4
2
+ Name: vexarr-rivex
3
+ Version: 0.1.1
4
+ Classifier: Programming Language :: Rust
5
+ Classifier: Programming Language :: Python :: Implementation :: CPython
6
+ Classifier: Programming Language :: Python :: 3
7
+ Classifier: Programming Language :: Python :: 3.10
8
+ Classifier: Programming Language :: Python :: 3.11
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Classifier: Programming Language :: Python :: 3.13
11
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
12
+ License-File: LICENSE
13
+ Summary: Rivex — high-performance Python web framework with a bundled Rust core
14
+ License: MIT
15
+ Requires-Python: >=3.10
16
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
17
+ Project-URL: Bug Tracker, https://github.com/vexarr-stack/python.rivex.dev/issues
18
+ Project-URL: Homepage, https://rivex.vexarr.com
19
+ Project-URL: Source, https://github.com/vexarr-stack/python.rivex.dev
20
+
21
+ # Rivex — Python SDK
22
+
23
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
24
+ [![PyPI](https://img.shields.io/pypi/v/vexarr-rivex.svg)](https://pypi.org/project/vexarr-rivex/)
25
+ [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
26
+
27
+ The Python SDK for [Rivex](https://rivex.vexarr.com) — a high-performance web
28
+ framework whose hot paths run as native Rust. Published to PyPI as
29
+ **`vexarr-rivex`** and imported as `rivex`.
30
+
31
+ ```bash
32
+ pip install vexarr-rivex
33
+ ```
34
+
35
+ ```python
36
+ import rivex
37
+
38
+ app = rivex.RivexServer()
39
+ app.add_route("GET", "/", lambda req: {"hello": "world"})
40
+ app.run("0.0.0.0", 8000)
41
+ ```
42
+
43
+ The wheel is **self-contained**: the Rust core (Hyper + Tokio) is
44
+ compiled into a PyO3 extension and bundled with every wheel. No external
45
+ download. No Rust toolchain required at install time.
46
+
47
+ ## How the bundling works
48
+
49
+ The Rust source lives in the [core repository][core-repo], which is
50
+ linked here as a git submodule at `core/`. At build time `maturin`
51
+ compiles the `rivex-python` crate from that submodule and packages the
52
+ resulting `rivex_core.<ext>` shared library into the wheel alongside a
53
+ thin Python wrapper (`rivex/__init__.py`) that re-exports the public
54
+ API.
55
+
56
+ ```
57
+ vexarr-rivex wheel
58
+ ┌─────────────────────────────┐
59
+ │ rivex/__init__.py │ ← Python wrapper (this repo)
60
+ │ rivex_core.<ext> │ ← Compiled PyO3 extension
61
+ │ rivex_core.pyi │ ← Type stubs
62
+ └─────────────────────────────┘
63
+
64
+ maturin
65
+
66
+ ┌────────────┐
67
+ │ core/ │ ← git submodule
68
+ │ crates/ │ of rivex-core
69
+ │ rivex- │
70
+ │ python │
71
+ └────────────┘
72
+ ```
73
+
74
+ [core-repo]: https://github.com/rivex-dev/core.rivex.vexarr.com
75
+
76
+ ## Local development
77
+
78
+ ```bash
79
+ # 1. Clone with the core submodule
80
+ git clone --recurse-submodules https://github.com/rivex-dev/python.rivex.vexarr.com
81
+ cd python.rivex.vexarr.com
82
+
83
+ # 2. Install maturin and a Rust toolchain (only needed for local builds —
84
+ # end users get prebuilt wheels)
85
+ pip install maturin
86
+ rustup toolchain install stable
87
+
88
+ # 3. Build + install into the current venv
89
+ maturin develop --release
90
+ python -c "import rivex; print(rivex.__version__)"
91
+ ```
92
+
93
+ To bump the bundled core version, update the submodule pointer:
94
+
95
+ ```bash
96
+ cd core && git fetch && git checkout v0.2.0 && cd ..
97
+ git add core && git commit -m "core: bump to v0.2.0"
98
+ ```
99
+
100
+ ## Releasing
101
+
102
+ Tagging a version on `main` triggers CI to build wheels for Linux
103
+ (`x86_64`, `aarch64`), macOS (`x86_64`, `aarch64`), and Windows (`x64`)
104
+ across Python 3.10–3.13, then publishes them to PyPI.
105
+
106
+ ## License
107
+
108
+ MIT — see [LICENSE](LICENSE).
109
+
@@ -0,0 +1,88 @@
1
+ # Rivex — Python SDK
2
+
3
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
4
+ [![PyPI](https://img.shields.io/pypi/v/vexarr-rivex.svg)](https://pypi.org/project/vexarr-rivex/)
5
+ [![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
6
+
7
+ The Python SDK for [Rivex](https://rivex.vexarr.com) — a high-performance web
8
+ framework whose hot paths run as native Rust. Published to PyPI as
9
+ **`vexarr-rivex`** and imported as `rivex`.
10
+
11
+ ```bash
12
+ pip install vexarr-rivex
13
+ ```
14
+
15
+ ```python
16
+ import rivex
17
+
18
+ app = rivex.RivexServer()
19
+ app.add_route("GET", "/", lambda req: {"hello": "world"})
20
+ app.run("0.0.0.0", 8000)
21
+ ```
22
+
23
+ The wheel is **self-contained**: the Rust core (Hyper + Tokio) is
24
+ compiled into a PyO3 extension and bundled with every wheel. No external
25
+ download. No Rust toolchain required at install time.
26
+
27
+ ## How the bundling works
28
+
29
+ The Rust source lives in the [core repository][core-repo], which is
30
+ linked here as a git submodule at `core/`. At build time `maturin`
31
+ compiles the `rivex-python` crate from that submodule and packages the
32
+ resulting `rivex_core.<ext>` shared library into the wheel alongside a
33
+ thin Python wrapper (`rivex/__init__.py`) that re-exports the public
34
+ API.
35
+
36
+ ```
37
+ vexarr-rivex wheel
38
+ ┌─────────────────────────────┐
39
+ │ rivex/__init__.py │ ← Python wrapper (this repo)
40
+ │ rivex_core.<ext> │ ← Compiled PyO3 extension
41
+ │ rivex_core.pyi │ ← Type stubs
42
+ └─────────────────────────────┘
43
+
44
+ maturin
45
+
46
+ ┌────────────┐
47
+ │ core/ │ ← git submodule
48
+ │ crates/ │ of rivex-core
49
+ │ rivex- │
50
+ │ python │
51
+ └────────────┘
52
+ ```
53
+
54
+ [core-repo]: https://github.com/rivex-dev/core.rivex.vexarr.com
55
+
56
+ ## Local development
57
+
58
+ ```bash
59
+ # 1. Clone with the core submodule
60
+ git clone --recurse-submodules https://github.com/rivex-dev/python.rivex.vexarr.com
61
+ cd python.rivex.vexarr.com
62
+
63
+ # 2. Install maturin and a Rust toolchain (only needed for local builds —
64
+ # end users get prebuilt wheels)
65
+ pip install maturin
66
+ rustup toolchain install stable
67
+
68
+ # 3. Build + install into the current venv
69
+ maturin develop --release
70
+ python -c "import rivex; print(rivex.__version__)"
71
+ ```
72
+
73
+ To bump the bundled core version, update the submodule pointer:
74
+
75
+ ```bash
76
+ cd core && git fetch && git checkout v0.2.0 && cd ..
77
+ git add core && git commit -m "core: bump to v0.2.0"
78
+ ```
79
+
80
+ ## Releasing
81
+
82
+ Tagging a version on `main` triggers CI to build wheels for Linux
83
+ (`x86_64`, `aarch64`), macOS (`x86_64`, `aarch64`), and Windows (`x64`)
84
+ across Python 3.10–3.13, then publishes them to PyPI.
85
+
86
+ ## License
87
+
88
+ MIT — see [LICENSE](LICENSE).