Loco—一个为全栈开发者提供的Web框架

电子说

1.3w人已加入

描述

Loco 一个为全栈开发者提供的 Rust Web 框架

你需要对 Rust 有一定的了解。你需要知道如何构建、测试和运行 Rust 项目,使用过一些流行的库,比如 clap、regex、tokio、axum 或其他 Web 框架,不过你不需要学会很复杂的东西。在 Loco 中没有疯狂的生命周期定义或复杂/过于神奇的宏,你只需要知道它们是如何工作的。

Loco 受到 Rails 的强烈启发。如果你了解 Rails 和 Rust,你会感到非常熟悉。如果你只了解 Rails 并且是 Rust 的新手,你会觉得 Loco 令人耳目一新。

该项目目前仍处于开发阶段。

用 rust 实现的国际象棋(终端版)

Rust

docker run --rm -it ghcr.io/thomas-mauran/chess-tui:main

norm:字符串相似匹配算法库

这个库实现了与 fzf 工具相同的模糊匹配算法,其中:

FzfV1 :fzf 在使用 --algo=v1 启动时使用的算法

FzfV2 :fzf 在没有任何额外标志或使用 --algo=v2 时启动时使用的算法

use std::ops::Range;

use norm::fzf::{FzfParser, FzfV2};
use norm::Metric;

letmut fzf = FzfV2::new();

letmut parser = FzfParser::new();

let query = parser.parse("aa");

let cities = ["Geneva", "Ulaanbaatar", "New York City", "Adelaide"];

letmut results = cities
.iter()
.copied()
.filter_map(|city| fzf.distance(query, city).map(|dist| (city, dist)))
.collect::>();

// We sort the results by distance in ascending order, so that the best match
// will be at the front of the vector.
results.sort_by_key(|(_city, dist)| *dist);

assert_eq!(results.len(), 2);
assert_eq!(results[0].0, "Adelaide");
assert_eq!(results[1].0, "Ulaanbaatar");

// We can also find out which sub-strings of each candidate matched the query.

letmut ranges: Vec = Vec::new();

let _ = fzf.distance_and_ranges(query, results[0].0, &mut ranges);
assert_eq!(ranges.len(), 2);
assert_eq!(ranges[0], 0..1); // "A" in "Adelaide"
assert_eq!(ranges[1], 4..5); // "a" in "Adelaide"

ranges.clear();

let _ = fzf.distance_and_ranges(query, results[1].0, &mut ranges);
assert_eq!(ranges.len(), 1);
assert_eq!(ranges[0], 2..4); // The first "aa" in "Ulaanbaatar"





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分