Helix 23.05发布

Helix 是个文本编辑器:

c4a5d5eaa54f6d7705a420ff4f34f4e2.png

新版本功能:

  • 为 LSP 引用请求添加一个配置选项,用于排除声明(#6886)。

  • 根据文件扩展名和 shebang 启用语言注入(#3970)。

  • 通过最近的访问对缓冲区选择器进行排序(#2980)。

  • 在选择器中异步执行语法高亮显示(#7028)。

方便、通用、正确和高性能的图数据库:gryf

目前还没有发布在crates,可以通过GitHub安装:

gryf = { git = "https://github.com/pnevyk/gryf.git" }

使用示例:

use gryf::algo::ShortestPaths;
use gryf::prelude::*;

fn main() {
    // 默认用邻接表存储
    let mut graph = Graph::new_undirected();

    let prague = graph.add_vertex("Prague");
    let bratislava = graph.add_vertex("Bratislava");
    let vienna = graph.add_vertex("Vienna");
    let munich = graph.add_vertex("Munich");
    let nuremberg = graph.add_vertex("Nuremberg");
    let florence = graph.add_vertex("Florence");
    let rome = graph.add_vertex("Rome");

    graph.add_edge(prague, bratislava, 328u32);
    graph.add_edge(prague, nuremberg, 293);
    graph.add_edge(bratislava, vienna, 79);
    graph.add_edge(nuremberg, munich, 170);
    graph.add_edge(vienna, munich, 402);
    graph.add_edge(munich, florence, 646);
    graph.add_edge(florence, rome, 278);

    // 无向图:Dijktra,有向图:Bellman-Ford
    let shortest_paths = ShortestPaths::on(&graph).goal(prague).run(rome).unwrap();
    let distance = shortest_paths[prague];
    let path = shortest_paths
        .reconstruct(prague)
        .map(|v| graph[v])
        .collect::<Vec<_>>()
        .join(" - ");

    println!("{distance} km from Prague through {path}");
    // 1387 km from Prague through Nuremberg - Munich - Florence - Rome
}

GitHub: https://github.com/pnevyk/gryf

Rust的crumsort

crumsort比pdqsort(Pattern-defeating quicksort)快33%。pdqsort是一种混合排序,下图是与C++标准库的对比:

8b3c5b6f0a60abf41b84d58da3ba0f90.png

下图是crumsort与pdqsort的对比(均匀分布的随机 u32)

LengthAlgorithmThroughputImprovement
212pdqsort32.15Mkeys/s0.00%
212crumsort38.70Mkeys/s20.39%
216pdqsort129.96Mkeys/s0.00%
216crumsort176.95Mkeys/s36.16%
220pdqsort226.31Mkeys/s0.00%
220crumsort368.09Mkeys/s62.65%
224pdqsort227.80Mkeys/s0.00%
224crumsort399.89Mkeys/s75.54%

GitHub: https://github.com/google/crumsort-rs

Rust+Windows+UI 3 App

a43e992927dda1ce1d77b857d4508b33.png

GitHub: https://github.com/sotanakamura/winui-rust


From 日报小组 长琴

社区学习交流平台订阅:

  • Rustcc 论坛:支持 rss

  • 微信公众号:Rust 语言中文社区

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐