几个星期前,我获得了GitHub CI / CD平台的测试版访问权限。我的Rust项目之前主要使用的Travis CI,最近开始迁移到Azure Pipelines,但现在可以考虑转向Github Actions了。
与Azure one相比,它配置的语法更友好一些,有Linux、macOS和Windows环境可用(几乎兼容主流平台),与其它GitHub组件的集成度也高一些。但对于我来说最重要的是可以创建在CI工作流中执行的动作自定义任务。
跟平常Rust CI操作类似
为Rust项目创建一个良好的CI工作流,需要做以下事情
检查你的cargo
和rustup
是否正常
安装你所需要的环境(stable,nightly或其它版本)
运行cargo clippy
和cargo fmt
我从自己项目的Azure Pipeline配置中复制了所有相同的脚本,在我的项目之间以某种方式复用它们,但是现在我很高兴这些配置能够运用到GitHub Actions上
下面都是一些配置和解释了,我就不在这里翻译了,感兴趣的可以直接阅读原文
Read More:https://svartalf.info/posts/2019-09-16-github-actions-for-rust/
一个建立在image和imageproc之上的命令行图像处理工具。
看几个用例:
最简单的用法是加载一个图像,然后保存它的相同副本。
imagecli --input robin.png --output ex0_0.png
可以为输出图像指定不同的格式
imagecli --input robin.png --output ex1_0.jpg
例如,下面的命令将图像转换为灰度
imagecli -i robin.png -o ex2_0.png -p 'gray'
还有更多的操作,感兴趣的大家可以去仓库瞧瞧
Repo:https://github.com/theotherphil/imagecli
这篇文章主要介绍了作者在绘制散热模拟图像时,如何不选择C++从而选择使用了Rust的历程,并在文中放出了相应的代码和成果,感兴趣的小伙伴可以仔细阅读一下这篇文章
Read More:https://tejqunair.com/posts/rust-heat/
Templar既是一个Rust库,也是一个CLI工具,用于处理模板。其用法和风格都受到了Jinja2和Ansible的启发,尽管它并不是这两种方法的克隆。该项目的目标是提供快速和灵活的动态模板,特别是用于配置和本地工具。
例如,一个简单的模板可能是这样的
user_name={{ user.name }} {# Replace with the context property 'name' in 'user' #}
full_context={{ . | json("pretty") }} {# Dump the entire context as JSON, '.' is the root node #}
password={{ script('echo hunter2 | md5sum') }} {# Execute a shell command and calculate the MD5 sum #}
除了简单的替换之外,还可以使用更复杂的表达式。
The calculated result is {{ 100 * 5 / 10 }} {#- Prints '50' #}
Today's guest list:
{%- for person in ['Bob', 'Joe', 'Jen', 'Amy')] %}
* {{ person }} will come to the party!
{%- endif %} {#- This will loop everyone in the inline array above, but they array could also come from the context #}
这是一个用Rust编写的Bitwarden server API实现,与上游的Bitwarden客户机兼容,非常适合在运行官方资源密集型服务可能并不理想的情况下进行自托管部署。
Repo:https://github.com/dani-garcia/bitwarden_rs
From 日报小组 月泉
日报订阅地址:
独立日报订阅地址:
Telgram Channel
阿里云语雀订阅
Steemit
GitHub
社区学习交流平台订阅:
Rust.cc 论坛: 支持 rss
Rust Force: 支持 rss
微信公众号:Rust 语言学习交流