编程语言:Rust
Our Experience Porting the YJIT Ruby Compiler to Rust
In this post, I want to give a nuanced perspective on our experience porting YJIT from C to Rust. I'll talk about the positives, but also discuss the things that we found challenging or suboptimal in our experience.
文盘Rust——领域交互模式如何实现
书接上文,上回说到如何通过interactcli-rs四步实现一个命令行程序。但是shell交互模式在有些场景下用户体验并不是很好。比如我们要连接某个服务,比如mysql或者redis这样的服务。如果每次交互都需要输入地址、端口、用户名等信息,交互起来太麻烦。通常的做法是一次性输入和连接相关的信息或者由统一配置文件进行管理,然后进入领域交互模式,所有的命令和反馈都和该领域相关。interactcli-rs通过 -i 参数实现领域交互模式。这回我们探索一下这一模式是如何实现的。
文盘Rust——起手式,CLI程序
学习一门计算机语言和学习人类语言有很多共通之处。我们学习人类语言是从单个的词开始,然后是简单句子,通过不断的与他人交互练习掌握语法和语言习惯。当熟练到一定程度就可以表达思想。计算的语言也差不多,熟悉关键词,基本逻辑,标准库,写应用。只是沟通的对象是机器而已。
文盘Rust -- 生命周期问题引发的 static hashmap 锁
Rust 无疑是2018年以来备受关注的语言。随着2021年一月 Rust 基金会的成立,也迎来了亚马逊、Google、微软、华为等重量级玩儿家。2019年初识Rust,看了些基础的书籍。2021年春节前后,撸了个 rust cli 开发的框架,基本上把交互模式,子命令提示这些cli该有的常用功能做进去了。项目地址:https://github.com/jiashiwen/interactcli-rs。春节以前看到 axum 已经 4.x 了,于是想看看能不能用 rust 做个服务端的框架。开发过程中遇到了不少问题,于是记录下来,和各位同学分享一下。
一次 Go 使用嵌入式 Rust 库的踩坑实践
故事发生在一个内部项目上,这个项目有 Go 和 Rust 两个部分,其中 Rust 库作为一个存储组件被 Go 的业务部分依赖着。出于种种原因,两个部分需要作为同一个进程来运行,中间有一层 C FFI 接口作为理想与现实的桥梁。
Rust 部分首先将使用到的 Library 的接口和结构使用另一个小小的 cdylib [1] shim 项目封装一下,并通过这个项目生成 Rust 库的编译产物一个动态链接对象和 C 的接口定义。再基于 C 的定义写一个 Go 的 SDK 给上层使用。单独的左边 Go 或者右边 Rust 项目都不够刺激,本文主要集中在中间那一团麻花的部分上,也是我 too young too simple 掉了很多头发的地方。
Using WebAssembly (created in Rust) for Fast React Components
With the recent update to Rust, it is time to relook at using Rust and React together. I have a new found love for Rust and everything it can do as a language. One of its more impressive features is its ability to write WebAssembly(Wasm) without much overhead. I have explored how to use Rust to write Wasm before (Blog post coming soon!). But I wanted to see how easy it would be to integrate it into a standard React workflow.
Rust 是 JavaScript 基础设施的未来
esbuild 激发了人们对于 Web 生态编译工具在速度上的追求,Rust 似乎正在成为 JavaScript 基础设施的未来。
Lossless compression with Brotli in Rust for a bit of Pied Piper on the backend
In HBO’s Silicon Valley, lossless video compression plays a pivotal role for Pied Piper as they struggle to stream HD content at high speed.
Inspired by Pied Piper, we created our own version of their algorithm Pied Piper at Hack Week. In fact, we’ve extended that work and have a bit-exact, lossless media compression algorithm that achieves extremely good results on a wide array of images. (Stay tuned for more on that!)
However, to help our users sync and collaborate faster, we also need to work with a standardized compression format that already ships with most browsers. In that vein, we’ve been working on open source improvements to the Brotli codec, which will make it possible to ship bits to our business customers using 4.4% less of their bandwidth than through gzip.
Why we built a custom Rust library for Capture
Dropbox Capture is a new visual communication tool designed to make it easy for teams to asynchronously share their work using screen recordings, video messages, screenshots, or GIFs. There's no formal onboarding required, and you can start sharing your ideas in seconds. In fact, simplicity is key to the Capture experience, and it's a value that also extends down to the development of Capture’s underlying code.
便利蜂门店网络与 Rust 落地实践
Rust 非常适合此类门店嵌入式场景,其完整易用的工具链、高质量社区、安全的内存管理,能大量缩短上线时间、提高交付质量。目前 Rust 在便利蜂已 100% 支撑店内网络 2 年时间,稳定性达 99.9999%,需求频次每半个月会做一次迭代。
一文带你走进 Rust 和 WebAssembly 的世界
Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。Rust 是一种 预编译静态类型(ahead-of-time compiled)语言,这意味着你可以编译程序,并将可执行文件送给其他人,他们甚至不需要安装 Rust 就可以运行。如果你给他人一个 .rb、.py 或 .js 文件,他们需要先分别安装 Ruby,Python,JavaScript 实现(运行时环境,VM)。
如何用Rust做Android UI渲染
Rust优秀的安全性、媲美C++的性能以及对跨平台编译和外部语言(ffi)的支持使得其成为高性能跨平台库的上佳实现语言。然而,Rust是否可以在逻辑层之上进一步服务于一些通用性的UI渲染?我们大力智能客户端团队针对开源项目rust-windowing( https://github.com/rust-windowing )中几个核心工程进行剖析,并结合在Android系统的接入对此进行探索。