Comonicon.jl - 快速,轻量级的CLI生成器

非常高兴在这里发布我的一个新的工程:https://rogerluo.me/Comonicon.jl/

特性

彩色且整齐的帮助信息

下面是一个用Comonicon构建的命令行工具:GitHub - Roger-luo/IonCLI.jl: The Ion CLI for Julia.

image

快速的启动时间

➜  Comonicon git:(master) ✗ hyperfine "julia example/comonicon_zero.jl 2"
Benchmark #1: julia example/comonicon_zero.jl 2
  Time (mean ± σ):     399.5 ms ±   8.5 ms    [User: 556.6 ms, System: 121.7 ms]
  Range (min … max):   389.7 ms … 409.0 ms    10 runs

➜  Comonicon git:(master) hyperfine "julia --project example/comonicon.jl 2"
Benchmark #1: julia --project example/comonicon.jl 2
  Time (mean ± σ):     781.2 ms ±   4.3 ms    [User: 926.5 ms, System: 132.4 ms]
  Range (min … max):   773.1 ms … 787.5 ms    10 runs

➜  Comonicon git:(master) ✗ hyperfine "julia example/fire.jl 2"
Benchmark #1: julia example/fire.jl 2
  Time (mean ± σ):     722.5 ms ±   4.4 ms    [User: 870.3 ms, System: 130.3 ms]
  Range (min … max):   717.9 ms … 729.6 ms    10 runs

➜  Comonicon git:(master) ✗ hyperfine "julia example/argmacros.jl 2"
Benchmark #1: julia example/argmacros.jl 2
  Time (mean ± σ):     668.8 ms ±   2.7 ms    [User: 814.7 ms, System: 136.2 ms]
  Range (min … max):   664.4 ms … 674.9 ms    10 runs

➜  Comonicon git:(master) hyperfine "julia --project example/argparse.jl 2"
Benchmark #1: julia --project example/argparse.jl 2
  Time (mean ± σ):      3.885 s ±  0.038 s    [User: 3.997 s, System: 0.159 s]
  Range (min … max):    3.839 s …  3.964 s    10 runs

零依赖

Comonicon可以自动生成一个可读的Julia脚本用于处理你的命令行参数。这个脚本是没有任何依赖的独立脚本,你可以选择在生成了这个脚本之后完全去掉Comonicon,也可以使用Comonicon自带的compile cache功能。

详情可以参见英文post:Comonicon.jl - Fast, Simple and Light weight CLI generator - Package Announcements - Julia Programming Language

以及网页和文档。

3 个赞

这个用来替代 CLI.jl 的吧 :slight_smile: