Helix 23.05发布

Helix 是个文本编辑器:

新版本功能:

为 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::>()

.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++标准库的对比:

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

LengthAlgorithmThroughputImprovement212pdqsort32.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

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

From 日报小组 长琴

社区学习交流平台订阅:

Rustcc 论坛:支持 rss微信公众号:Rust 语言中文社区

精彩链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。