ITPub博客

首页 > 数据库 > 数据库开发技术 > 【Rust 日报】2023-07-23 交互式UI框架

【Rust 日报】2023-07-23 交互式UI框架

原创 数据库开发技术 作者:Rust语言中文社区 时间:2023-07-24 18:06:51 0 删除 编辑

交互式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图

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

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

Trie实现

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

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

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


From 日报小组 长琴

社区学习交流平台订阅:

  • Rustcc 论坛:支持 rss

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


原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-06-11

  • 博文量
    1769
  • 访问量
    719037