超越R和Python:面向科学的Rust
Rust似乎在科学编程的未来中变得越来越重要。 它的速度与C++一样快,与Python一样灵活,并且包装甚至比R语言更好。同时它也相对比较难学习,需要大量的认知投入。总的来说,编写干净,快速和安全的代码的能力是值得的。
在过去的两年中,我有一些比较烦人的转换经验。我第一次在斯坦福大学的编程语言课程中看到Rust在实践中,立刻被这种可能性迷住了。更多请看原文:https://scie.nz/rust/
rusty-editor
rusted-editor是rg3d游戏引擎的场景编辑器。相关repo如下:
https://github.com/mrDIMAS/rg3d https://github.com/mrDIMAS/rusty-editor
推文以及相关视频地址:https://twitter.com/DmitryNStepanov/status/1336802725007396865?s=20。这是游戏中时光倒流,实时时间大约是20分钟。
Minus 项目
rust 实现的一个快速,异步终端分页库。它提供了高级功能,可以方便地为任何终端应用程序编写分页器。minus 同时支持 tokio 和 async-std 运行时。更重要的是,如果您只想使用minus来提供静态输出,你也可以选择不使用这些动态特性
项目地址:https://github.com/arijit79/minus
使用示例:
use async_std::task::sleep;
use futures::join;
use std::fmt::Write;
use std::time::Duration;
#[async_std::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let output = minus::Lines::default();
let increment = async {
let mut counter: u8 = 0;
for i in 0..=30_i32 {
let mut output = output.lock().unwrap();
writeln!(output, "{}", i)?;
drop(output);
sleep(Duration::from_millis(100)).await;
}
Result::<_, std::fmt::Error>::Ok(())
};
let (res1, res2) = join!(
minus::async_std_updating(minus::Lines::clone(&output), minus::LineNumbers::Enabled),
increment
);
res1?;
res2?;
Ok(())
}
From 日报小组 @Jancd @Downtime
社区学习交流平台订阅:
评论区
写评论还没有评论