❯ cargo run -q -- -c etc/iocaine.kdl
Error: × Failed to interpret etc/iocaine.kdl
├─▶ Failed to evaluate `http-server`
├─▶ Failed to evaluate `script`
├─▶ Failed to evaluate `language`
╰─▶ Unsupported language
╭─[16:12]
15 │ bind-to @iocaine.http
16 │ script language=janet path="/some/path" {
· ───────┬──────
· ╰── here
17 │ module "nsoe" path="/path/to/nam-shub-of-enki"
╰────
help: Supported languages are: roto, fennel, lua
And also:
❯ cargo run -q --no-default-features -F fancy-errors -F http-server -F language-fennel -- -c etc/iocaine.kdl
Error: × Failed to interpret etc/iocaine.kdl
├─▶ Failed to evaluate `http-server`
├─▶ Failed to evaluate `script`
├─▶ Failed to evaluate `language`
╰─▶ Unsupported language
╭─[16:12]
15 │ bind-to @iocaine.http
16 │ script language=roto path="/some/path" {
· ──────┬──────
· ╰── here
17 │ module "nsoe" path="/path/to/nam-shub-of-enki"
╰────
help: Supported languages are: fennel, lua
...but also:
❯ cargo run -q --no-default-features -F http-server -- -c etc/iocaine.kdl
error: At least one of the `language-roto`, `language-fennel`, or `language-lua` MUST be enabled.
--> iocaine-recipe/src/blueprint/zoomies.rs:151:9
|
151 | / compile_error!(
152 | | "At least one of the `language-roto`, `language-fennel`, or `language-lua` MUST be enabled."
153 | | );
| |_________^
On a different topic: With default features, and with roto 0.13 pulled in, iocaine is at 215 dependencies including transitive ones. That's a lot, but currently about a third of iocaine3's.
The size of the binary compiled with Cargo's default
releaseprofile is 1.8MiB stripped on x86-64 Linux.For reference, iocaine 3.5.1 is 28MiB stripped.
Granted, iocaine4 is currently a big no-op, and all it can do is load its configuration. It's dependencies and size will increase, but I hope both will be substantially smaller in the end than in iocaine3's case.