< 返回版块

长琴 发表于 2023-07-23 21:29

Tags:rust,日报,concoct,rtz,dot_ix,trie

交互式UI框架

使用 Rust 语言编写的Modular UI编译器和运行时库。

示例:

#[composable]
fn counter(interval: Duration) {
    let count = compose!(remember(move || {
        let count = State::new(0);

        let timer_count = count.clone();
        concoct::spawn(async move {
            loop {
                sleep(interval).await;
                timer_count.update(|count| *count += 1);
            }
        });

        count
    }));

    text(*count.get());
}

#[composable]
fn app() {
    compose!(counter(Duration::from_secs(1)));
    compose!(counter(Duration::from_secs(2)));
}

// ...

GitHub: https://github.com/concoct-rs/concoct

##时区解析库rtz

rtz 是一个极快的时区解析引擎。这是一个用Rust语言编写的库、二进制文件和服务器(也可以通过Wasm使用)。你可以使用这个库,运行自己的服务器,或者也可以使用作者在fly.io上设置的免费服务器。

使用示例(二进制):

$ rtz resolve "-87.62,41.88"

Friendly Name:   America/Chicago
UTC Offset:      UTC-06:00
Offset Seconds:  -21600
Description:     Canada (almost all of Saskatchewan), Costa Rica, El Salvador, Ecuador (Galapagos Islands), Guatemala, Honduras, Mexico (most), Nicaragua,
DST Description: Canada (Manitoba), United States (Illinois, most of Texas)

使用示例(Rust):

use rtzlib::base::geo::get_timezone;

// Query a time zone for a given `(lng,lat)`.
assert_eq!(
    get_timezone(-121., 46.)
        .unwrap()
        .friendly_name
        .as_ref()
        .unwrap(),
    "America/Los_Angeles"
);

使用示例(JS):

import * as rtz from 'rtzweb/rtzlib.js';

let tz = rtz.getTimeZone(-121, 46);
tz.friendly_name; // "America/Los_Angeles"

GitHub: https://github.com/twitchax/rtz

交互式dot图

3720b47486356faceeabff774b1d900d.png

Demo: https://azriel.im/dot_ix/

GitHub: https://github.com/azriel91/dot_ix

Trie实现

Trie(字典树)数据结构用于快速访问与单词及其相关数据相关联的内容。

基本的 Trie 被实现为一棵树,每个节点包含一个字符,并且可以指向任何其他字符,因此可以插入任意的单词。每个节点还包含与之相关联的数据的向量。

GitHub: https://github.com/lukascobbler/basic_trie


From 日报小组 长琴

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页