< 返回版块

Jancd 发表于 2020-12-11 10:45

Tags:rust,news

超越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

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页