我在Rust写了几个小脚本。这些可以通过如下命令如何在没有货物的情况下在Rust中使用regexes?
$ rustc dosomething.rs && ./dosomething
这些工作的伟大运行。但是,我遇到了一个需要使用正则表达式的情况。我开始与脚本extern crate regex;
它出现,这意味着我需要通过货运运行我的脚本。我设法运行使用正则表达式这个小脚本的唯一方法是迫使我的脚本到它自己的目录,具有以下结构:
.
├── Cargo.toml
└── src
└── main.rs
我
[package]
name = "wordcount"
version = "0.0.1"
[dependencies]
regex = "0.1"
装起来Cargo.toml
和忠实地跑cargo build
并获得了我的可执行文件。
但是,当计算货物制品使用的磁盘空间时,我发现它们由17个文件,21个目录和23兆字节组成。
现在,这在运行大型应用程序时是完全正确的;我看起来很小的Java应用程序,其中Maven下载了23M的微型罐。
我只是想知道是否没有其他方式来使用正则表达式在Rust中编写脚本。 (是的,我确实需要正则表达式,因为易于使用\pL
。)
Rust中是否有内置的正则表达式支持,或者是否将我的wordcount脚本与我的其他脚本保持在同一目录中?也许有一些类似于-L
的标志吗?
我想你是在说这不是Cargo的问题,而是Regex箱子及其依赖关系的组合大小。我能想到的唯一选择是用ffi封装一个C/C++正则表达式引擎,例如pcre(并且不计算它的大小,假设它已经安装)。 –
您可以使单个货运项目编译多个二进制文件,这些二进制文件在技术上符合将所有内容保存在同一目录中的条件。您也可以通过在您的'Cargo.toml'中明确设置源代码的路径来消除'src'目录本身。 – BurntSushi5
您可以使用没有Cargo的正则表达式箱子,但是您必须重复Cargo为您做的所有工作。例如,正则表达式包有几个依赖关系,你也必须安装。 – BurntSushi5