muructl 0.1.0a1__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.
@@ -0,0 +1,313 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "anstream"
7
+ version = "1.0.0"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
10
+ dependencies = [
11
+ "anstyle",
12
+ "anstyle-parse",
13
+ "anstyle-query",
14
+ "anstyle-wincon",
15
+ "colorchoice",
16
+ "is_terminal_polyfill",
17
+ "utf8parse",
18
+ ]
19
+
20
+ [[package]]
21
+ name = "anstyle"
22
+ version = "1.0.14"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
25
+
26
+ [[package]]
27
+ name = "anstyle-parse"
28
+ version = "1.0.0"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
31
+ dependencies = [
32
+ "utf8parse",
33
+ ]
34
+
35
+ [[package]]
36
+ name = "anstyle-query"
37
+ version = "1.1.5"
38
+ source = "registry+https://github.com/rust-lang/crates.io-index"
39
+ checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
40
+ dependencies = [
41
+ "windows-sys",
42
+ ]
43
+
44
+ [[package]]
45
+ name = "anstyle-wincon"
46
+ version = "3.0.11"
47
+ source = "registry+https://github.com/rust-lang/crates.io-index"
48
+ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
49
+ dependencies = [
50
+ "anstyle",
51
+ "once_cell_polyfill",
52
+ "windows-sys",
53
+ ]
54
+
55
+ [[package]]
56
+ name = "anyhow"
57
+ version = "1.0.104"
58
+ source = "registry+https://github.com/rust-lang/crates.io-index"
59
+ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
60
+
61
+ [[package]]
62
+ name = "clap"
63
+ version = "4.6.7"
64
+ source = "registry+https://github.com/rust-lang/crates.io-index"
65
+ checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"
66
+ dependencies = [
67
+ "clap_builder",
68
+ "clap_derive",
69
+ ]
70
+
71
+ [[package]]
72
+ name = "clap_builder"
73
+ version = "4.6.7"
74
+ source = "registry+https://github.com/rust-lang/crates.io-index"
75
+ checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"
76
+ dependencies = [
77
+ "anstream",
78
+ "anstyle",
79
+ "clap_lex",
80
+ "strsim",
81
+ ]
82
+
83
+ [[package]]
84
+ name = "clap_derive"
85
+ version = "4.6.7"
86
+ source = "registry+https://github.com/rust-lang/crates.io-index"
87
+ checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"
88
+ dependencies = [
89
+ "heck",
90
+ "proc-macro2",
91
+ "quote",
92
+ "syn",
93
+ ]
94
+
95
+ [[package]]
96
+ name = "clap_lex"
97
+ version = "1.1.1"
98
+ source = "registry+https://github.com/rust-lang/crates.io-index"
99
+ checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486"
100
+
101
+ [[package]]
102
+ name = "colorchoice"
103
+ version = "1.0.5"
104
+ source = "registry+https://github.com/rust-lang/crates.io-index"
105
+ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
106
+
107
+ [[package]]
108
+ name = "heck"
109
+ version = "0.5.0"
110
+ source = "registry+https://github.com/rust-lang/crates.io-index"
111
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
112
+
113
+ [[package]]
114
+ name = "is_terminal_polyfill"
115
+ version = "1.70.2"
116
+ source = "registry+https://github.com/rust-lang/crates.io-index"
117
+ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
118
+
119
+ [[package]]
120
+ name = "libc"
121
+ version = "0.2.191"
122
+ source = "registry+https://github.com/rust-lang/crates.io-index"
123
+ checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a"
124
+
125
+ [[package]]
126
+ name = "muru-common"
127
+ version = "0.1.0-alpha.1"
128
+
129
+ [[package]]
130
+ name = "muru-config"
131
+ version = "0.1.0-alpha.1"
132
+
133
+ [[package]]
134
+ name = "muru-controller"
135
+ version = "0.1.0-alpha.1"
136
+
137
+ [[package]]
138
+ name = "muru-dashboard"
139
+ version = "0.1.0-alpha.1"
140
+
141
+ [[package]]
142
+ name = "muru-edge"
143
+ version = "0.1.0-alpha.1"
144
+
145
+ [[package]]
146
+ name = "muru-proto"
147
+ version = "0.1.0-alpha.1"
148
+
149
+ [[package]]
150
+ name = "muru-py"
151
+ version = "0.1.0-alpha.1"
152
+ dependencies = [
153
+ "pyo3",
154
+ ]
155
+
156
+ [[package]]
157
+ name = "muru-supervisor"
158
+ version = "0.1.0-alpha.1"
159
+
160
+ [[package]]
161
+ name = "muru-testkit"
162
+ version = "0.1.0-alpha.1"
163
+
164
+ [[package]]
165
+ name = "muructl"
166
+ version = "0.1.0-alpha.1"
167
+ dependencies = [
168
+ "anyhow",
169
+ "clap",
170
+ ]
171
+
172
+ [[package]]
173
+ name = "once_cell"
174
+ version = "1.21.4"
175
+ source = "registry+https://github.com/rust-lang/crates.io-index"
176
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
177
+
178
+ [[package]]
179
+ name = "once_cell_polyfill"
180
+ version = "1.70.2"
181
+ source = "registry+https://github.com/rust-lang/crates.io-index"
182
+ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
183
+
184
+ [[package]]
185
+ name = "portable-atomic"
186
+ version = "1.15.0"
187
+ source = "registry+https://github.com/rust-lang/crates.io-index"
188
+ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
189
+
190
+ [[package]]
191
+ name = "proc-macro2"
192
+ version = "1.0.107"
193
+ source = "registry+https://github.com/rust-lang/crates.io-index"
194
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
195
+ dependencies = [
196
+ "unicode-ident",
197
+ ]
198
+
199
+ [[package]]
200
+ name = "pyo3"
201
+ version = "0.30.1"
202
+ source = "registry+https://github.com/rust-lang/crates.io-index"
203
+ checksum = "229ca13b8a15bb0d1487b81ab975bfcd97513416499a8312011b6036e42e0de4"
204
+ dependencies = [
205
+ "libc",
206
+ "once_cell",
207
+ "portable-atomic",
208
+ "pyo3-build-config",
209
+ "pyo3-ffi",
210
+ "pyo3-macros",
211
+ ]
212
+
213
+ [[package]]
214
+ name = "pyo3-build-config"
215
+ version = "0.30.1"
216
+ source = "registry+https://github.com/rust-lang/crates.io-index"
217
+ checksum = "70130e2b6dd1ee589a8788026a429561ca5c40fa7a2fa7914c2282eddae24700"
218
+ dependencies = [
219
+ "target-lexicon",
220
+ ]
221
+
222
+ [[package]]
223
+ name = "pyo3-ffi"
224
+ version = "0.30.1"
225
+ source = "registry+https://github.com/rust-lang/crates.io-index"
226
+ checksum = "5e7ff73c555c286d212d4ce7e5fbda845a973c4f61bd5f160f5f2c3c2a04d1c4"
227
+ dependencies = [
228
+ "libc",
229
+ "pyo3-build-config",
230
+ ]
231
+
232
+ [[package]]
233
+ name = "pyo3-macros"
234
+ version = "0.30.1"
235
+ source = "registry+https://github.com/rust-lang/crates.io-index"
236
+ checksum = "c46d2e5862c7bb8207e3b639f713dda3c499933444784154c11d013c5a691b60"
237
+ dependencies = [
238
+ "proc-macro2",
239
+ "pyo3-macros-backend",
240
+ "quote",
241
+ "syn",
242
+ ]
243
+
244
+ [[package]]
245
+ name = "pyo3-macros-backend"
246
+ version = "0.30.1"
247
+ source = "registry+https://github.com/rust-lang/crates.io-index"
248
+ checksum = "38b89f066f2ae72a2aef52d1537ca2fcd104440ebfadee06e97aa90738a25b9b"
249
+ dependencies = [
250
+ "heck",
251
+ "proc-macro2",
252
+ "quote",
253
+ "syn",
254
+ ]
255
+
256
+ [[package]]
257
+ name = "quote"
258
+ version = "1.0.47"
259
+ source = "registry+https://github.com/rust-lang/crates.io-index"
260
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
261
+ dependencies = [
262
+ "proc-macro2",
263
+ ]
264
+
265
+ [[package]]
266
+ name = "strsim"
267
+ version = "0.11.1"
268
+ source = "registry+https://github.com/rust-lang/crates.io-index"
269
+ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
270
+
271
+ [[package]]
272
+ name = "syn"
273
+ version = "3.0.9"
274
+ source = "registry+https://github.com/rust-lang/crates.io-index"
275
+ checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b"
276
+ dependencies = [
277
+ "proc-macro2",
278
+ "quote",
279
+ "unicode-ident",
280
+ ]
281
+
282
+ [[package]]
283
+ name = "target-lexicon"
284
+ version = "0.13.5"
285
+ source = "registry+https://github.com/rust-lang/crates.io-index"
286
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
287
+
288
+ [[package]]
289
+ name = "unicode-ident"
290
+ version = "1.0.27"
291
+ source = "registry+https://github.com/rust-lang/crates.io-index"
292
+ checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563"
293
+
294
+ [[package]]
295
+ name = "utf8parse"
296
+ version = "0.2.2"
297
+ source = "registry+https://github.com/rust-lang/crates.io-index"
298
+ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
299
+
300
+ [[package]]
301
+ name = "windows-link"
302
+ version = "0.2.1"
303
+ source = "registry+https://github.com/rust-lang/crates.io-index"
304
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
305
+
306
+ [[package]]
307
+ name = "windows-sys"
308
+ version = "0.61.2"
309
+ source = "registry+https://github.com/rust-lang/crates.io-index"
310
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
311
+ dependencies = [
312
+ "windows-link",
313
+ ]
@@ -0,0 +1,32 @@
1
+ [workspace]
2
+ resolver = "2"
3
+ members = ["crates/*"]
4
+
5
+ [workspace.package]
6
+ # The only place the project version is stated. Change it with `just bump`.
7
+ version = "0.1.0-alpha.1"
8
+ edition = "2024"
9
+ rust-version = "1.85"
10
+ license = "Apache-2.0"
11
+ repository = "https://github.com/GrahamDumpleton/muru"
12
+ homepage = "https://github.com/GrahamDumpleton/muru"
13
+ authors = ["Graham Dumpleton"]
14
+ publish = false
15
+
16
+ [workspace.dependencies]
17
+ anyhow = "1"
18
+ clap = { version = "4.5", features = ["derive"] }
19
+ pyo3 = { version = "0.30", features = ["extension-module"] }
20
+ thiserror = "2"
21
+ tracing = "0.1"
22
+
23
+ [workspace.lints.rust]
24
+ missing_docs = "warn"
25
+ unsafe_op_in_unsafe_fn = "warn"
26
+
27
+ [workspace.lints.clippy]
28
+ undocumented_unsafe_blocks = "warn"
29
+
30
+ [profile.release]
31
+ lto = "thin"
32
+ codegen-units = 1
@@ -0,0 +1,30 @@
1
+ Metadata-Version: 2.4
2
+ Name: muructl
3
+ Version: 0.1.0a1
4
+ Classifier: Development Status :: 1 - Planning
5
+ Classifier: Intended Audience :: Developers
6
+ Classifier: Intended Audience :: System Administrators
7
+ Classifier: Operating System :: POSIX :: Linux
8
+ Classifier: Operating System :: MacOS
9
+ Classifier: Programming Language :: Rust
10
+ Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Server
11
+ Requires-Dist: uv>=0.5 ; extra == 'uv'
12
+ Provides-Extra: uv
13
+ Summary: Muru: routing edge, control plane and Python runtime for WSGI and ASGI applications
14
+ Author: Graham Dumpleton
15
+ License-Expression: Apache-2.0
16
+ Requires-Python: >=3.11
17
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
18
+ Project-URL: Changelog, https://github.com/GrahamDumpleton/muru/blob/main/CHANGELOG.md
19
+ Project-URL: Documentation, https://muru.readthedocs.io/
20
+ Project-URL: Homepage, https://github.com/GrahamDumpleton/muru
21
+ Project-URL: Repository, https://github.com/GrahamDumpleton/muru
22
+
23
+ # muructl
24
+
25
+ The Muru command line: the daemon, the edge and development mode in one
26
+ binary. Install with `uv tool install muructl` (or `muructl[uv]` to bring uv
27
+ along for interpreter provisioning and builds).
28
+
29
+ See https://github.com/GrahamDumpleton/muru.
30
+
@@ -0,0 +1,7 @@
1
+ # muructl
2
+
3
+ The Muru command line: the daemon, the edge and development mode in one
4
+ binary. Install with `uv tool install muructl` (or `muructl[uv]` to bring uv
5
+ along for interpreter provisioning and builds).
6
+
7
+ See https://github.com/GrahamDumpleton/muru.
@@ -0,0 +1,21 @@
1
+ [package]
2
+ name = "muructl"
3
+ description = "The Muru command line: daemon, edge and development mode in one binary."
4
+ version.workspace = true
5
+ edition.workspace = true
6
+ rust-version.workspace = true
7
+ license.workspace = true
8
+ repository.workspace = true
9
+ authors.workspace = true
10
+ publish.workspace = true
11
+
12
+ [[bin]]
13
+ name = "muructl"
14
+ path = "src/main.rs"
15
+
16
+ [dependencies]
17
+ anyhow = { workspace = true }
18
+ clap = { workspace = true }
19
+
20
+ [lints]
21
+ workspace = true
@@ -0,0 +1,61 @@
1
+ //! The `muructl` binary: CLI, subcommand dispatch and development mode.
2
+ //!
3
+ //! Placeholder created with the project skeleton. Every command is defined
4
+ //! once with clap, which later generates help, man pages and the CLI
5
+ //! reference (design specification section 14.4 and Appendix A).
6
+
7
+ use clap::{Parser, Subcommand};
8
+
9
+ /// Routing edge, control plane and Python runtime for WSGI and ASGI applications.
10
+ #[derive(Parser)]
11
+ #[command(name = "muructl", version, about, long_about = None)]
12
+ struct Cli {
13
+ #[command(subcommand)]
14
+ command: Command,
15
+ }
16
+
17
+ #[derive(Subcommand)]
18
+ enum Command {
19
+ /// Run an application with an embedded controller and edge (development mode).
20
+ Run,
21
+
22
+ /// Run or control the daemon.
23
+ Daemon {
24
+ #[command(subcommand)]
25
+ command: DaemonCommand,
26
+ },
27
+
28
+ /// Run an edge process (internal, started by the daemon).
29
+ Edge {
30
+ #[command(subcommand)]
31
+ command: EdgeCommand,
32
+ },
33
+ }
34
+
35
+ #[derive(Subcommand)]
36
+ enum DaemonCommand {
37
+ /// Run the daemon in the foreground.
38
+ Run,
39
+ }
40
+
41
+ #[derive(Subcommand)]
42
+ enum EdgeCommand {
43
+ /// Run an edge process.
44
+ Run,
45
+ }
46
+
47
+ fn main() -> anyhow::Result<()> {
48
+ let cli = Cli::parse();
49
+
50
+ // Nothing is implemented yet; the skeleton only establishes the command shape.
51
+ let name = match cli.command {
52
+ Command::Run => "run",
53
+ Command::Daemon {
54
+ command: DaemonCommand::Run,
55
+ } => "daemon run",
56
+ Command::Edge {
57
+ command: EdgeCommand::Run,
58
+ } => "edge run",
59
+ };
60
+ anyhow::bail!("muructl {name} is not implemented yet; see docs/project/roadmap.md")
61
+ }
@@ -0,0 +1,35 @@
1
+ [build-system]
2
+ requires = ["maturin>=1.8,<2"]
3
+ build-backend = "maturin"
4
+
5
+ [project]
6
+ name = "muructl"
7
+ dynamic = ["version"] # taken from Cargo.toml by maturin
8
+ description = "Muru: routing edge, control plane and Python runtime for WSGI and ASGI applications"
9
+ readme = "README.md"
10
+ license = "Apache-2.0"
11
+ authors = [{ name = "Graham Dumpleton" }]
12
+ requires-python = ">=3.11"
13
+ dependencies = []
14
+ classifiers = [
15
+ "Development Status :: 1 - Planning",
16
+ "Intended Audience :: Developers",
17
+ "Intended Audience :: System Administrators",
18
+ "Operating System :: POSIX :: Linux",
19
+ "Operating System :: MacOS",
20
+ "Programming Language :: Rust",
21
+ "Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
22
+ ]
23
+
24
+ [project.optional-dependencies]
25
+ uv = ["uv>=0.5"]
26
+
27
+ [project.urls]
28
+ Homepage = "https://github.com/GrahamDumpleton/muru"
29
+ Documentation = "https://muru.readthedocs.io/"
30
+ Repository = "https://github.com/GrahamDumpleton/muru"
31
+ Changelog = "https://github.com/GrahamDumpleton/muru/blob/main/CHANGELOG.md"
32
+
33
+ [tool.maturin]
34
+ bindings = "bin"
35
+ manifest-path = "crates/muructl/Cargo.toml"