RSSAmplifier

Blog

Next Stop - Ihcblog!

Some creations and thoughts sharing | sub site:ihc.im

en.ihcblog.comRSS feed ↗20 posts

Latest posts

Rust2Go Part2: Exploring CGO Calls for Extreme Performance

This article also has an Chinese version . A year ago, I released an open-source project called Rust2Go (related blog: Design and Implementation of a Rust-Go FFI Framework ), which provides high-performance asynchronous and synchronous call support from Rust to Go. This project serves as the foundation for several community projects and multiple internal projects within my company. I’ve continued…

Building Reliable Context-Passing Components in Rust

This article also has an Chinese version . This article discusses my thoughts, designs, and implementations on creating a reliable context-passing component in Rust. My project, certain-map , has been open-sourced (it was first released over a year ago, with more improvements made recently, which I will discuss later in this article). Feel free to use it! Project URL:…

Mini VMM in Rust 4 - Implement Virtio Device

This article also has a Chinese version . This series of articles mainly records my attempt to implement a Hypervisor using Rust. The table of contents: Mini VMM in Rust - Basic Mini VMM in Rust - Mode Switch Mini VMM in Rust - Run Real Linux Kernel Mini VMM in Rust - Implement Virtio Devices This article is the fourth in the series. It will cover implementing a Virtio Queue and virtio-net from…

Design and Implementation of a Rust-Go FFI Framework

This article also has a Chinese version . This article will introduce the design and implementation of a Rust FFI (Foreign Function Interface) framework that I created for calling Golang code from Rust. It will cover the design from the perspective of a designer and implementer, considering various options and explaining the choices made and the reasons behind them. It will also cover some…

Rust HTTP Framework Design - Taking Axum 0.6 as an Example

This article also has a Chinese version . An HTTP Server internally includes many parts: protocol implementation (h1, h2, compression, etc.), connection state management (keepalive), request distribution, middleware, business logic, and more. Users could implement all of these themselves, however, apart from the business logic, the rest are fairly common capabilities. By decoupling these generic…

Mini VMM in Rust 3 - Run Real Linux Kernel

This article also has a Chinese version . This series of articles mainly records my attempt to implement a Hypervisor using Rust. The table of contents: Mini VMM in Rust - Basic Mini VMM in Rust - Mode Switch Mini VMM in Rust - Run Real Linux Kernel Mini VMM in Rust - Implement Virtio Devices This article is the third in the series, where we’ll do some preparatory work and actually get a real…

Mini VMM in Rust 2 - Mode Switch

This article also has a Chinese version . This series of articles mainly records my attempt to implement a Hypervisor using Rust. The table of contents: Mini VMM in Rust - Basic Mini VMM in Rust - Mode Switch Mini VMM in Rust - Run Real Linux Kernel Mini VMM in Rust - Implement Virtio Devices This article is the second in the series, which mainly introduces a few common operating modes and switch…

Mini VMM in Rust 1 - Basic

This article also has a Chinese version . This series of blog posts mainly records my process of trying to implement a Hypervisor in Rust. Why am I writing this series? A few months ago, when I was exploring KVM in my spare time, I encountered some difficulties. Many articles on the Internet did not explain things clearly, and there wasn’t a single article that could build a VMM from scratch and…

ShadowTLS: A Better TLS Camouflage Proxy

This article also has a Chinese version . This article mainly analyzes the currently popular Trojan protocol and proposes a better solution based on the characteristics of current man-in-the-middle (MITM) attacks. The implementation of this solution is ShadowTLS, for which you can find the complete code and pre-compiled binaries on Github .

Rust Runtime Design and Implementation - IO Compatibility Part

This article also has a Chinese version . This series of articles mainly introduces how to design and implement a Runtime based on the io-uring and Thread-per-core model. Our final Runtime product Monoio is now open source, and you can find it at github.com/bytedance/monoio . Rust Runtime Design and Implementation - General Introduction Rust Runtime Design and Implementation - Design…

Rust Runtime Design and Implementation - Component Part

This article also has a Chinese version . This series of articles mainly introduces how to design and implement a Runtime based on the io-uring and Thread-per-core model. Our final Runtime product Monoio is now open source, and you can find it at github.com/bytedance/monoio . Rust Runtime Design and Implementation - General Introduction Rust Runtime Design and Implementation - Design…

Rust Runtime Design and Implementation - Design Part 2

This article also has a Chinese version . This series of articles mainly introduces how to design and implement a Runtime based on the io-uring and Thread-per-core model. Our final Runtime product Monoio is now open source, and you can find it at github.com/bytedance/monoio . Rust Runtime Design and Implementation - General Introduction Rust Runtime Design and Implementation - Design…

Rust Runtime Design and Implementation - Design Part 1

This article also has a Chinese version . This series of articles mainly introduces how to design and implement a Runtime based on the io-uring and Thread-per-core model. Our final Runtime product Monoio is now open source, and you can find it at github.com/bytedance/monoio . Rust Runtime Design and Implementation - General Introduction Rust Runtime Design and Implementation - Design…

Rust Runtime Design and Implementation - General Introduction

This article also has a Chinese version . This series of articles mainly introduces how to design and implement a Runtime based on the io-uring and Thread-per-core model. Our final Runtime product Monoio is now open source, and you can find it at github.com/bytedance/monoio . Rust Runtime Design and Implementation - General Introduction Rust Runtime Design and Implementation - Design…

Some interesting attempts at eBPF with Rust

This article also has a Chinese version . I’ve recently made two attempts with eBPF and found it quite interesting, so I thought I’d share.

Reflections on proxy Design

This article also has a Chinese version . This article mainly summarizes common issues and thoughts in proxy framework design ; it also touches on some engineering designs within the Rust + Tower ecosystem. Although there’s already plenty of discussion on this topic online, who knows, maybe after reading this article, you’ll come up with a new idea? Found out that since joining the company, I’ve…

Exploring a Seamless Cloud Drive Encryption Solution

This article also has a Chinese version . This article will introduce an unobtrusive method of encrypting cloud storage (using OneDrive as an example), and the code has been open sourced after the project was essentially complete.

Using an SD Card with Bad Blocks on a Development Board

This article also has a Chinese version . The Raspberry Pi has already ruined three of my SD cards. Although I was able to directly contact SanDisk and Samsung customer service on two occasions, where they replaced the SD cards unconditionally adhering to the warranty terms. However, SD (TF) cards can’t endure many write cycles. Depending on the type of flash memory cells, MLC (Multi-Level Cell)…

Speed Up Shadowsocks

This article also has a Chinese version . This article briefly summarizes current methods for accelerating internet access and details an acceleration project I developed based on Shadowsocks: go-shadowsocks-magic . UPDATE 2019-10: Building on the ideas from this project, I extended it to support arbitrary TCP connections by decoupling the multi-connection acceleration: Rabbit TCP , which shows…

Memoirs of Tinkering with the MiaoMiao Printer

This article also has a Chinese version . Let’s dig out some past work. These were some projects I worked on in July last year, and some of them might have become obsolete by now. Last summer, I stumbled upon this device called the MiaoMiao Printer. As someone who enjoys tinkering, I got involved with reverse engineering and developing related to the MiaoMiao Printer. All the resources are…