前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2019-12-19 Writing BPF code in Rust

【Rust日报】2019-12-19 Writing BPF code in Rust

作者头像
MikeLoveRust
发布2019-12-25 17:16:51
6370
发布2019-12-25 17:16:51
举报
文章被收录于专栏:Rust语言学习交流

Tokio v0.2.5 版本更新

Includes new APIs, utilities, and fixes. Some highlights:

tokio::sync::broadcast

tokio::sync::Semaphore

A multi-producer, multi-consumer channel where each sent value is sent to all consumers (fan-out). The channel is bounded and when consumers lag, they will receive an error indicating they have lagged too far behind.

example 1:

代码语言:javascript
复制
use tokio::sync::broadcast;

#[tokio::main]
async fn main() {
    let (tx, mut rx1) = broadcast::channel(16);
    let mut rx2 = tx.subscribe();

    tokio::spawn(async move {
        assert_eq!(rx1.recv().await.unwrap(), 10);
        assert_eq!(rx1.recv().await.unwrap(), 20);
    });

    tokio::spawn(async move {
        assert_eq!(rx2.recv().await.unwrap(), 10);
        assert_eq!(rx2.recv().await.unwrap(), 20);
    });

    tx.send(10).unwrap();
    tx.send(20).unwrap();
}

tokio-compat 0.1.1版本发布

Tokio 0.2 使用 std::futureasync/await 使得 Tokio 编写异步代码更加符合人体工程学,并且新的调度器使 Tokio 0.2 的线程池快了 10 倍。然而,更新现有的 Tokio 0.1 将是个难题。Tokio Compat 这个库就是为了解决这个问题,它提供与 Tokio 0.1 和 Tokio 0.2 未来兼容的运行时。

使用示例

Spawning both tokio 0.1 and tokio 0.2 futures:

代码语言:javascript
复制
use futures_01::future::lazy;

tokio_compat::run(lazy(|| {
    // spawn a `futures` 0.1 future using the `spawn` function from the
    // `tokio` 0.1 crate:
    tokio_01::spawn(lazy(|| {
        println!("hello from tokio 0.1!");
        Ok(())
    }));

    // spawn an `async` block future on the same runtime using `tokio`
    // 0.2's `spawn`:
    tokio_02::spawn(async {
        println!("hello from tokio 0.2!");
    });

    Ok(())
}))

查看原文:https://tokio.rs/blog/2019-12-compat/

Writing BPF code in Rust

如果你做系统编程,你可能最近经常听说BPF。它是一种新的热门 Linux 技术,允许在内核中运行用户提供的程序。Netflix、Facebook、谷歌、Cloudflare 和其他许多公司都在使用它来实现快速的负载平衡、DDoS 缓解和性能监控等功能。

原文请看:https://blog.redsift.com/labs/writing-bpf-code-in-rust/

reddit 参与讨论:https://www.reddit.com/r/rust/comments/ecspjx/writing_bpf_code_in_rust/

壁纸来一发

原图真的不错,reddit 原文:https://www.reddit.com/r/rust/comments/echv8s/my_rust_holiday_wallpaper/

招聘信息

@NEARProtocol is looking for a WebAssembly & Compiler Engineer

?? San Francisco / New York ?? Berlin ?? Moscow ? Remote allowed!

原文链接:https://t.co/iL4s9gAcc8?amp=1


From 日报小组 @Jancd

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tokio v0.2.5 版本更新
  • tokio-compat 0.1.1版本发布
    • 使用示例
    • Writing BPF code in Rust
    • 壁纸来一发
    • 招聘信息
    相关产品与服务
    应用性能监控
    应用性能监控(Application Performance Management,APM)是一款应用性能管理平台,基于实时多语言应用探针全量采集技术,为您提供分布式性能分析和故障自检能力。APM 协助您在复杂的业务系统里快速定位性能问题,降低 MTTR(平均故障恢复时间),实时了解并追踪应用性能,提升用户体验。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档