谷歌 搜索引擎优化指南 February 2022-days

优采云 发布时间: 2022-04-29 14:00

  谷歌 搜索引擎优化指南 February 2022-days

  知乎译文地址:

  2021年 rust 调查结果

  9354 名受访者,90% 的受访者表示他们正在使用 Rust,而 5% 的人表示他们过去曾使用过 Rust 但现在不再使用,4% 的人表示他们根本没有使用过 Rust。

  75% 的 Rust 用户说他们可以编写用于生产环境的代码, 27% 的人说这有时很困难。

  2021 年可以说是 Rust 历史上最重要的年份之一——随着 Rust 基金会的成立、2021 版本以及比以往任何时候都更大的社区,Rust 走向更坚实的未来。

  ReadMore:

  Amazon:Rust的可持续性

  Rust 是一种作为开源项目实*敏*感*词*会,这是一个由 Amazon Web Services, Inc (AWS) 、谷歌、华为、微软和 Mozilla 合作创建的非营利组织。基金会的使命是支持 Rust 的成长和创新,成员公司从创始的 5 家公司发展到第一年的 27 家公司。

  在 AWS,Rust 迅速成为*敏*感*词*构建基础设施的关键。

  AWS 正在投资 Rust 的可持续性,并认为应该使用这种语言来构建可持续和安全的解决方案。

  原文链接,

  rust-protobuf 的过去、现在和未来

  链接为 github rust-protobuf 项目,最新提交在 5 天前,文章记录了 rust-protobuf 成立的原因,以及面对的问题,并阐述了将来的计划。

  热议帖 - 我TM的做开源没有得到任何资助

  kind和hvm的作者由于更新慢而被社区有人批评,感到很愤怒。

  我TM的做开源这么久了,没有得到一块钱资助,你有什么资格批评。社区今天的热帖,欢迎围观。

  最近发生了太多这样的事情,导致很多作者感觉做开源,真的没意思。这其实已经成了一个开源界世界的问题。

  link:

  garage - 全球分布式存储项目,rust实现

  法国一群人搞的项目,分布式对象存储,S3兼容。理想很美好,为了对抗巨头科技公司的集权。现实还不知道怎样呢。

  repo:

  一个性能优化的故事

  An optimization story

  作者把物理模拟速度提高100倍。作者用其最好的NumPy技能将其速度提高了4倍,在Rust中进行了一些其他优化后,速度提高了50倍。作者坦言,如果他有两个以上的CPU,速度可能会达到100倍。

  Rust中的内存映射文件

  Memory mapped files in Rust

  作为一名Rust新手,作者想在自己的第一个项目中处理一些非常大的二进制文件,读取它们,遍历它们,等等。 但是作者在搜索支持内存映射文件的Rust库时发现,memmap有超过700万次下载,但是它已经超过3年没有更新。 以下是作者的一些顾虑:

  可以想象在过去的三年里,很多事情都发生了变化。但是这个库三年没有更新了,这个库还有用吗?

  有没有更好的(非废弃的)替代库?

  如果我用这个库作为依赖项启动一个大型项目,我将来会遇到什么问题?

  其实针对这个问题,RUSTSEC上已经有条目(RUSTSEC-2020-0077)针对这个风险作出了提示,并给出了两个可选的替*敏*感*词*源库:

  mapr

  memmap2

  ++++++wasmRust + Vite =

  vite-plugin-rsw发布了 v2.0 版本

  ++++++gameWordle 游戏的Rust版本

  对了,这是在终端下。

  Veloren 0.12今天发布!

  Veloren是一个rust实现的多人像素RPG游戏,Veloren从Cube World、Minecraft这些游戏获取灵感,目前还处在开发阶段,但是已经是可玩的了。

  Github 链接,

  文章链接,

  Rust 编写的 Flappybird

  这是一个 Rust 编写的 Flappybird.

  github地址

  FishFlight

  像素风格战术2D射击游戏,最多4名玩家在线或在共享屏幕上玩。

  GitHub:

  GitHub:

  Rustenstein 3D:像 1992 年一样的游戏编程

  随着 NextRoll 越来越多地采用 Rust 编程语言,工程师通常将 Hack Week 用作获得实践经验的机会。另一个流行的选择是开发视频游戏,正如您可能已经猜到的那样,我们经常看到它们在 Rust 视频游戏项目中结合使用。去年,一群人致力于扩展 rpg-cli 游戏。不过,这一次,他们想通过一个可以发挥 Rust 一些优势的项目来提升它的一个档次:低级编程、密集计算和 C 数据互操作性。所以他们决定将经典的Wolfenstein 3D 游戏移植到 Rust。

  Harvest Hero Origins - Rust开发的游戏上线Steam

  一款经典arcade风格的wave防守游戏。大家去玩玩。

  Steam link:

  ++++++guiPopOS正在与Relm4配合,以帮助用Rust在PopOS上开发GTK程序

  PopOS是要开发Rust Linux发行版的System76的Linux发行版,现在正致力于和Relm4合作,帮助用Rust在PopOS上更容易地开发GTK程序。

  Relm4是基于GTK上层的一套框架,提供类Elm的编程模式。

  Link

  egui 0.17 已发布

  继续抛光打磨!egui体验太棒了,欢迎大家都去尝试。社区口碑非常好的一个GUI库。

  demo

  Rust 和 OpenCV

  这是一篇 OpenCV 在 Rust 中的使用指导, 非常的详尽.

  原文链接

  ImageSieve

  用于对图像进行排序和分类的GUI工具。

  具体而言,将所有图像和视频放在一个文件夹中,用 ImageSieve 打开文件夹,将不值得保留的图像和视频标记为丢弃,定义时间段内的一些重大事件(如生日, 旅行或婚礼),选择一个目标文件夹,ImageSieve 将自动完成工作。

  GitHub:

  ++++++dbEngula: 新版本发布

  Engula是一个 cloud-native 数据结构存储器,可以用于数据库、缓存和存储引擎。

  特性:

  github地址

  TZ-RS,Libc函数localtime, gmtime和mktime的重新实现

  Libc函数limetime,gmtime和mktime的纯Rust重新实现。

  这个crate主要用于UNIX平台。由于时区数据库文件未包含在此crate中,因此非UNIX用户可以在IANA站点上下载时区数据库的副本,并将时区数据库文件编译为本地目录。

  Github 链接,

  文章链接,

  PostgreSQL 与 Rust 聚合

  在使用 PostgreSQL 时,使用类似 SUM(vals) 或者 AVG(vals) 是一个常见的习惯。这些聚合函数为用户提供了一种简单、有效的方法来计算一组输入的结果。那么它们是如何工作的?是什么让它们与普通函数不同?我们如何制作一个聚合函数?还有哪些其他用途?通过pgx我们使用 SQL 创建一些基本的聚合方法,然后使用 pgx 0.3.0 的新聚合支持创建一个在 Rust 中定义聚合的扩展。

  SeaORM 0.6.0 发布

  SeaORM 刚刚发布 0.6.0 版本,具有以下新特性:

  crates.io - sea-orm:

  What's new in SeaORM 0.6.0:

  ++++++websiteTelecss

  Rust 写的 CSS标记器,解析器,转换器。

  BenchMark:

  GitHub:

  Actix Web 发布 v4.0

  Actix Web 是一个强大的高性能 Web 框架,用于创建从小型到单体的 Web 服务。

  v4.0 主要变化

  v4.0 版本是由社区推动的,57 位贡献者提交了超过 600 次!主要变化包括:

  迁移指南包含了如何更新的解释和差异。

  热议 - 2022 年你会选择哪种 Web 框架

  Sylvain Kerkour ,Bloom 的创建者也是 Black Hat Rust 一书的作者,发文对比了 actix-web、warp 和 axum 三个 Web 框架,结合代码示例进行了一个简单的评估。尽管作者心属 axum,但还是选择 actix-web 作为 Bloom 的首选。

  Reddit 上的网友则提供了更多讨论,包括 tide ,rocket 以及 poem 。

  Which Rust web framework to choose in 2022 (with code examples):

  hyper 1.0路线路出来了

  seanmonstar 大大规划2022年一定要发布 hyper 1.0。给他加油吧。

  link

  Blueboat 开源库

  Blueboat 是 Cloudflare Workers 的开源替代品,旨在成为 serverless Web 应用程序的开发人员友好型多租户平台。

  简单使用示例:

  Router.get("/", req => new Response("hello world"));<br /><br />Router.get("/example", req => {<br /> return fetch("https://example.com");<br />});<br /><br />Router.get("/yaml", req => {<br /> const res = TextUtil.Yaml.stringify({<br /> hello: "world",<br /> });<br /> return new Response(res);<br />});<br />

  让我们用 Rust 和 Yew 0.19 构建一个 WebSockets 项目

  作者介绍如何使用 Yew、yew-router、yew-agent 和其他几个项目构建一个聊天应用程序

  Starlane

  Starlane 是一个资源网格,使微服务能够在整个企业中创建、查找、监视和使用各种微资源以及向其他微服务发送消息。 Starlane 还提供了用于部署、执行和连接客户端和服务器端 WebAssembly 参与者(称为 Mechtrons)的机制。

  Starlane 使在云、边缘、桌面、移动和物联网环境中安全的 WebAssembly 代码的部署和互操作变得容易。

  官方网站:

  Tutorial:

  GitHub:

  rust-protobuf: 过去,现在和未来

  rust-protobuf是作者 7 年前开始的 Rust protobuf 的实现. 在 Rust 中使用过 protobuf的人都知道, 存在着两个实现,一个是 rust-protobuf, 另外是一个 Prost 为基础的其他实现. 两个实现都有各自的优缺点. 作者同时也表达了自己未来对该库的迷茫.

  也许未来,多个 protobuf 的实现会合并也不一定.

  原文链接

  actix-web发布v4.0预发布版本

  我有信心说,在两周内,如果没有发现任何重大问题,我们将能够稳定Actix Web v4.0

  我鼓励你开始升级你的应用程序和库到rc.1,并请在我们的Discord服务器上提供反馈;这对制定迁移指南和加强所需的文档会有很大的帮助。

  就个人而言,感谢你们在这个极其漫长的测试期中的耐心和支持;终点就在眼前,看到它的发布将是一种极大的安慰。

  Github:

  Read More:

  ++++++toolsnotan: 一个可以移植的多媒体层

  notan 的目标是成为一个简单和可移植的多媒体层,旨在在其上创建您自己的多媒体应用程序,而不必过多地担心特定于平台的代码。

  我们的主要目标是提供一组api和工具,这些api和工具可以用于以人体工程学的方式创建项目,而不强制执行任何结构或模式,并且总是尽量不妨碍您的工作。

  在线 demos

  github地址

  clap 3.1迈向4.0的一步

  clap 3.1来了! Clap是一个Rust的CLI参数分析器,v3.1版本的重点是为clap 4.0准备的API清理。详情请见CHANGELOG。

  clap 3.0已经开发了4年,虽然我们看到有人将其与《半条命3》相提并论,但我们也看到有人将两次发布的间隔时间过长作为使用它的动机之一。为了让clap保持相关性,我们觉得我们需要避免长时间发布周期的停滞,同时为clap已经 "足够好 "的用户保持平稳。v3.1的发布是努力实现这种平衡的一个重要步骤。

  Read More:

  zestors: 一个新的 actor 框架

  zestors是 一个简单、快速、灵活的 actor 框架,用于构建健壮的分布式应用程序,深受 Erlang 的启发。

  刚刚开源.

  github地址

  jless:命令行 JSON 查看器

  JLess 是一个命令行 JSON 查看器,专为阅读、探索和搜索 JSON 数据设计。

  GitHub - PaulJuliusMartinez/jless:

  jless — a command-line JSON viewer:

  turbo-resin - resin 3D打印机的固件

  Rust实现的固件。

  repo:

  Puff——一个基于Rust的CLI工具,用于将应用程序的配置存储在一个公共位置,以便轻松传输到另一台机器

  Puff - a Rust-based CLI tool to store apps' configs in one common place for easy transfer to another machine

  Puff是一个CLI工具,用于管理正在开发的应用程序的配置文件。通常,这些配置与项目的源代码一起使用。由于它们可能包含的密码/密钥,它们通常被排除在版本控制系统之外。Puff管理这些文件并将它们存储在一个公共位置,从而更容易将它们传输到另一台开发机器。你的应用程序通过Puff创建的符号链接访问配置文件。

  详细使用说明请参考:

  CADBase 平台发布

  经过4年的设计和开发,我们团队很高兴地宣布CADBase项目正式启动()。

  CADBase设计用于存放图纸和相关材料(标准、供应商、支持文件)的信息。

  资源的主要部分是包含以下数据的组件页面:

  原文链接

  Jotsy:一个由Skytable、Axum和Tokio支持的自托管笔记应用程序

  我很高兴宣布jotsy - 一个自托管,免费和开源(Apache-2.0)的笔记程序,使用Skytable,Axum和Tokio构建。jotsy最重要的目标是简单,专注于最重要的事情,记笔记。

  文章链接,

  Github 链接,

  Symphonia 发布 v0.5

  Symphonia 是一个音频解码和媒体解复用库,支持 AAC、ALAC、FLAC、MKV、MP3、MP4、OGG、Vorbis、WAV 和 WebM 多种格式。类似 FFMpeg,不过是用纯 Rust 来实现的。

  undo tree

  大家好! 我只是觉得我应该分享这个,这样我可以得到关于我的代码的反馈。我创建了一个undo tree的程序--基本上,这个程序允许你把一个目录结构进行可视化,并把它实例化为一个实际的目录结构!

  我注意到,过去我不得不重新创建目录结构,以便回答问题或在目录上运行测试。例如,忽略某些类型的文件,它提供了一个目录结构作为参考。

  文件本身并不是由问问题的人提供的,也不需要提供,但目录结构本身与问题有关。

  untree允许你完全复制目录结构,只需粘贴给定的目录树。

  除了允许你回答关于目录结构的问题,untree还适合于快速创建目录结构,以模拟输入其他程序。

  Read More:

  Github:

  ++++++ffi从Node到Rust

  24 天从从 JavaScript 到 Rust教程,一个 Node 开发者视角的 Guide。

  视频:

  GitHub:

  Panther

  一个用 Rust 和 Numpy C API 编写的高性能 python 技术分析库。平均而言,Panther 对这些(如下)指标的计算比使用 Pandas(行业标准方法)快 9 倍。

  GitHub:

  swift-bridge

  swift-bridge 促进 Rust 和 Swift 互操作,可以在 Rust 和 Swift 之间传递和共享高级类型,例如Option、String、Struct和Class。

  电子书:

  GitHub:

  flutter_rust_bridge 开源项目

  flutter_rust_bridge 是一个用于 Flutter/Dart 与 Rust 的高级内存安全绑定*敏*感*词*。

  它开源将 Flutter(一种跨平台的热重载快速开发 UI 工具包)和 Rust(一种使每个人都能够构建可靠且高效的软件的语言)结合起来。

  项目地址:

  Juliaup,Rust开发的 Julia 安装程序

  Julia 即将推出安装程序 Juliaup,它由两个二进制文件组成:juliaup 和 julialauncher。juliaup 创建者在 Julia 更新计划中讲述了他为什么用 Rust 编写它。

  juliaup 本身最初是用 Julia 编写的,然后使用 PackageCompiler.jl 进行编译。但这从来都不是一个真正顺利的体验,原因有很多。生成的二进制发行版非常庞大(几百 MB),这对于一个简单的小型命令行工具来说确实不理想,启动延迟不是很好(不可怕,但不是很好),编译时间真的很长,这一切都只是真的粗糙的。因此,在某个时候,当我已经将 julialauncher 移植到 Rust 时,我也将其余部分也移植了过来。我对这个选择非常非常满意,静态类型,非常不同的错误处理模型等,使其成为科学代码的完全非入门者,但对于像 Juliaup 这样的东西来说,它是一个非常好的匹配(比像 Julia、IMO 这样的动态语言要好得多)。—— juliaup creator: David Anthoff

  Julia 编程语言,

  Julia 更新计划链接,

  ++++++Embedded宣布Gyroflow - 用GPU加速和跨平台UI用Rust编写的高级视频稳定工具

  Gyroflow是一个应用程序,可以通过使用来自陀螺仪和可选的加速度计的运动数据来稳定您的视频。现代相机在内部记录运动数据(GoPro,Sony,Insta360等),这个应用程序通过使用这些数据稳定了捕获的镜头。它还可以使用来自外部源的陀螺数据(例如,从betaflight Blackbox)。

  Github 链接,#gh-light-mode-only

  文章链接,

  RVV 编码器rvv-asm例子

  unsafe {<br /> rvv_asm::rvv_asm!(<br /> "vsetvl x5, s3, t6",<br /> "1: vle256.v v3, (a0), vm",<br /> "2:",<br /> "li {lo}, 4",<br /> lo = out(reg) lo,<br /> );<br />}<br /><br />

  rvv-as用法

  USAGE:<br /> rvv-as [OPTIONS] <br /><br />ARGS:<br /> The original assembly source file path<br /><br />OPTIONS:<br /> -c, --comment-origin Use original instruction and its code as comment<br /> -p, --comment-prefix The comment prefix [default: #]<br /> -r, --reserved-only Only translate reserved rvv instructions<br /><br />

  ReadMore:

  ++++++asyncLukas: rust-analyzer 和 proc-macros

  rust-analyzer 在 2021 年 9 月 27 日默认启用了#[attribute]扩展,从那时起,我们已经看到了一些关于在属性项目内部完成时用户体验下降的问题。 对于大多数用户来说,这是一个相当大的问题,尤其是那些编写异步或网络服务器代码的用户,因为那里主要使用属性。 然而,直到最近我们才真正开始正确解决这个问题。

  在 2021 年 rust-analyzer 回顾中简要讨论了它,但 Lukas Wirth 认为另一篇关于更普遍问题以及可能的解决方案的帖子可能会引起某些人的兴趣。这篇文章将扩展这个问题,不仅讨论属性,还讨论类似函数的 proc-macros。 但是不会具体涉及派生属性,因为它们不会真正受到问题的影响,因为它们不会替换带注释的项目。

  文章链接,

  Tokio Metrics 0.1

  今天,我们很高兴地宣布初始发布Tokio-Metrics,一个用于获得Tokio应用程序的运行时和任务级别指标的crate。Tokio-Metrics使Tokio用户更容易通过提供生产中的运行时行为来调试性能问题。

  如今,Tokio已成功用于亚马逊、微软、Discord等公司的*敏*感*词*生产部署。然而,我们通常会从处理调试问题的工程师那里收到问题。

  文章链接,

  异步读写Trait

  Read和Write Trait 是 Rust 中 IO的关键部分,设计这些Trait的异步版本,对于提高异步生态系统中的互操作性和可移植性至关重要。这项工作是改进 Rust 中的异步编程正在进行的工作的一部分。

  ReadMore:

  rust actor 发展情况

  Rust 广泛采用 CSP 模型进行并发编程,不过仍有一些爱好者想要尝试 Actor 模型,这不,有人在 twitter 上发起了一个讨论:What's the current state of actor systems in rust? 下面是针对该讨论的一些总结:

  actixrikeraxiom几个框架虽然发展得不错,不过都没有发布 1.0 版本,也就是说没有稳定的 API,同时项目更新频率也不是很理想

  你并不太需要一个大型 Actor 框架,因为通过 tokio,你甚至可以自己造一套轮子

  很多 Actor 框架可能只是一些针对 channel 的语法糖,并没有带来编程复杂度上的改善

  ttokio-cron-scheduler: 0.4 版本发布

  在异步 tokio 环境中使用类似cron的调度。也可以在一个瞬间安排任务,或者在固定的时间内重复它们。

  use tokio_cron_scheduler::{JobScheduler, JobToRun, Job};<br /><br />#[tokio::main]<br />async fn main() {<br /> let mut sched = JobScheduler::new();<br /> <br /> sched.add(Job::new("1/10 * * * * *", |uuid, l| {<br /> println!("I run every 10 seconds");<br /> }).unwrap());<br /><br /> sched.add(Job::new_async("1/7 * * * * *", |uuid, l| Box::pin( async {<br /> println!("I run async every 7 seconds");<br /> })).unwrap());<br /><br /> sched.add(Job::new("1/30 * * * * *", |uuid, l| {<br /> println!("I run every 30 seconds");<br /> }).unwrap());<br /> <br /> sched.add(<br /> Job::new_one_shot(Duration::from_secs(18), |_uuid, _l| {<br /> println!("{:?} I'm only run once", chrono::Utc::now());<br /> }).unwrap()<br /> );<br /><br /> let mut jj = Job::new_repeated(Duration::from_secs(8), |_uuid, _l| {<br /> println!("{:?} I'm repeated every 8 seconds", chrono::Utc::now());<br /> }).unwrap();<br /> sched.add(jj);<br /> <br /> jj.on_start_notification_add(Box::new(|job_id, notification_id, type_of_notification| {<br /> Box::pin(async move {<br /> println!("Job {:?} was started, notification {:?} ran ({:?})", job_id, notification_id, type_of_notification);<br /> })<br /> }));<br /><br /> jj.on_stop_notification_add(Box::new(|job_id, notification_id, type_of_notification| {<br /> Box::pin(async move {<br /> println!("Job {:?} was completed, notification {:?} ran ({:?})", job_id, notification_id, type_of_notification);<br /> })<br /> }));<br /> <br /> jj.on_removed_notification_add(Box::new(|job_id, notification_id, type_of_notification| {<br /> Box::pin(async move {<br /> println!("Job {:?} was removed, notification {:?} ran ({:?})", job_id, notification_id, type_of_notification);<br /> })<br /> }));<br /><br /> let five_s_job = Job::new("1/5 * * * * *", |_uuid, _l| {<br /> println!("{:?} I run every 5 seconds", chrono::Utc::now());<br /> })<br /> .unwrap();<br /> sched.add(five_s_job);<br /> <br /> let four_s_job_async = Job::new_async("1/4 * * * * *", |_uuid, _l| Box::pin(async move {<br /> println!("{:?} I run async every 4 seconds", chrono::Utc::now());<br /> })).unwrap();<br /> sched.add(four_s_job_async);<br /> <br /> sched.add(<br /> Job::new("1/30 * * * * *", |_uuid, _l| {<br /> println!("{:?} I run every 30 seconds", chrono::Utc::now());<br /> })<br /> .unwrap(),<br /> );<br /> <br /> sched.add(<br /> Job::new_one_shot(Duration::from_secs(18), |_uuid, _l| {<br /> println!("{:?} I'm only run once", chrono::Utc::now());<br /> }).unwrap()<br /> );<br /> <br /> sched.add(<br /> Job::new_one_shot_async(Duration::from_secs(16), |_uuid, _l| Box::pin( async move {<br /> println!("{:?} I'm only run once async", chrono::Utc::now());<br /> })).unwrap()<br /> );<br /> <br /> let jj = Job::new_repeated(Duration::from_secs(8), |_uuid, _l| {<br /> println!("{:?} I'm repeated every 8 seconds", chrono::Utc::now());<br /> }).unwrap();<br /> sched.add(jj);<br /> <br /> let jja = Job::new_repeated_async(Duration::from_secs(7), |_uuid, _l| Box::pin(async move {<br /> println!("{:?} I'm repeated async every 7 seconds", chrono::Utc::now());<br /> })).unwrap();<br /> sched.add(jja);<br /><br /> sched.start().await;<br />}<br /><br />

  原文链接

  【官方】2022年异步Rust的改进计划

  张汉东老师对官方异步Rust改进计划博客的翻译。原博客先给出我们在 2024 年应该可以如何使用异步 Rust 的场景,然后再回过头来看看我们对异步 Rust 已经走到了哪一步、还需要完成什么工作。

  翻译博客:

  Panics vs cancellation

  人们在使用 Rust 异步时,经常抱怨的一件事就是取消,Rust Team 的 niko 分享了他对 Panics 和 canncellation 的理解,以及如何更好地处理异步取消这个棘手的问题

  原文链接-连载中

  ++++++job++++++sciencezestors: 一个新的 actor 框架

  zestors是 一个简单、快速、灵活的 actor 框架,用于构建健壮的分布式应用程序,深受 Erlang 的启发。

  刚刚开源.

  github地址

  rusty-tesseract: Google Tesseract 的 Rust wrapper

  rusty-tesseract是一个 Google Tesseract 的 Rust wrapper.

  egui_inspect一个通过egui查看和编辑结构的工具箱。

  你好!我最近偶然发现了imgui-inspect,我非常喜欢这个包,即能够在结构中放入一些派生宏和属性宏,以生成大量的模板代码来检查结构。

  受到启发,我发布了我的第一个crate:egui_inspect。我的目标是创建一个非常简单的API,在项目中易于使用。目前仍然很粗糙(例如,没有文档,错误报告相当于不存在),但我为我在48小时内完成的工作感到自豪,并希望得到一些反馈。

  在我的代码中,最困扰我的是如何检测内部处理的类型标识符,因为现在它需要大量的字符串比较,使代码臃肿,而且似乎使Vec难以支持。

  感谢你的阅读,我希望你会对这个crate感兴趣

  Github:

  ++++++linuxzellij - tmux 的 Rust 实现版本

  比 screen, tmux 更现代。还等什么呢,用啊。

  Rust for Linux第四个补丁版本提交

  Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 近日再向 Linux Kernel 邮件列表提交了一个新补丁 (v4),继续推进在 Linux 内核中增加对 Rust 作为第二语言支持。此举意味着对 Linux 内核驱动程序等的可选 Rust 编程支持继续成熟;Phoronix 称,按着这一趋势,今年或将有望看到主线状态。

  :

  开源 update-informer:用于 CLI 应用程序的高度可定制的 Rust 库

  update-informer 是一个主要为使用 Rust 编写的 CLI 工具创建的库,例如 dotenv- linter 、datanymizer。它检查已发布的新版本,并在发现更新时发送通知。update-informer由开源爱好者 Mikhail Grachev 开发。 CLI 代表命令行界面——一个命令行程序,它读取您输入的命令并执行请求的操作。一般来说,任何可以通过终端命令使用的程序都属于这一类。

  获取系统信息的命令行工具汇总

  Is there some cli program like neofetch written in rust?

  neofetch是一个用bash 3.2+编写的命令行系统信息工具;

  以下是一些使用Rust编写的命令行工具的替代品:

  以下是ferris-fetch的效果:

  各类语言编写的fetch工具的完整列表:

  ++++++ide发布Bacon 2

  bacon是一个后台Rust代码检查器。

  它被设计成需要最小的交互,这样你就可以让它运行在你的编辑器侧边栏,并通知你的Rust代码中的警告、错误或测试失败等信息。

  它甚至可以在一个小终端中传达你需要的信息,这样你就可以为你的其他任务保留更多的屏幕空间。

  Read More:

  INTELLIJ RUST 更新日志 #165

  ReadMore:

  在 Rust 中实现 NTFS 文件系统

  是时候用 Rust 重写我们的系统软件并摆脱 C 的陷阱了。这个过程中还包括文件系统支持等基础知识。作者接受了在 Rust crate 中实现 NTFS(Windows 使用的主要文件系统)的挑战,并且从固件级别到用户模式都同样可用。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线