At this point, the iocaine binary is 11.44MiB. I'd need to shave almost 1.5MiB off to get below the magic 10MiB line.
Even with the simplifications I plan to do, the amount of code I can drop on the iocaine side is not likely to be over 500KiB, so I'd need to save another megabyte on dependencies.
Looking at those with cargo bloat:
File .text Size Crate
10.5% 16.1% 1.3MiB std
8.0% 12.3% 1003.4KiB cranelift_codegen
5.6% 8.6% 699.1KiB roto
4.8% 7.4% 606.9KiB iocaine_powder
4.4% 6.8% 554.6KiB mlua
3.2% 4.8% 395.5KiB regex_automata
2.5% 3.8% 307.6KiB iocaine
2.1% 3.3% 268.2KiB [Unknown]
1.8% 2.8% 226.0KiB clap_builder
1.4% 2.2% 180.1KiB cranelift_assembler_x64
1.4% 2.2% 179.1KiB regalloc2
1.3% 2.0% 165.2KiB regex_syntax
1.3% 1.9% 158.9KiB maxminddb
1.2% 1.9% 154.7KiB tokio
1.2% 1.8% 149.6KiB aho_corasick
1.0% 1.6% 126.5KiB winnow
0.8% 1.3% 105.8KiB axum
0.7% 1.1% 88.4KiB figment
0.7% 1.0% 82.7KiB upon
0.7% 1.0% 81.7KiB hyper
The ones I can reasonably cut are axum and figment, and they don't contribute much. Cranelift, Roto, and mlua are the big ones, but those I'm not cutting. Not from the default build.
A build without roto, with lua only would definitely go below 10MiB. A build without lua may also go below 10MiB... hm. Actually, I can try that (I mean without lua). I can also save a few hundred KiBs off by not including a fennel compiler, but I don't think that'd be a good trade. The entire reason I added Lua support is for Fennel, I'm not going to make that less convenient!