CNWei 0c478ae39d refactor(spec,loader): 精简项目结构,移除对json配置的支持
- 优化 spec,loader 部分功能合并到 mirror
- 移除 loader 降级策略逻辑
- 新增 logger.rs 统一日志处理
- 其他优化
2026-08-29 17:01:17 +08:00
2021-01-21 23:05:19 +08:00
2026-08-26 11:52:55 +08:00
2021-01-21 23:05:19 +08:00
2021-01-21 23:05:19 +08:00
2021-01-21 23:05:19 +08:00
2021-01-21 23:05:19 +08:00

rshim

rshim is the shim program written in rust.

Why this exist?

There are several versions of shim:

  1. the official shim.cs was written in c# and required an instantiation of a .NET command line app every time it was started therefore is slower than directly executing. And it dose not handle Ctrl+C event correctly.

  2. shim.c is ok with performance and Ctrl+C event handling,but sometimes suffer memory violation (randomly exited with return code 3221226356).

  3. shim.cpp didn't work on my machine, calling it with any executable result in an infinite recursion of creating subprocess until eating all memory for unknown subtle reason.

rshim :

  1. less probability with bug and undefined behavior.
  2. properly handle variety errors.
  3. friendly error message.
  4. properly handle Ctrl+C events.
  5. properly handle utf-8 with or without bom in shim file.

Installation

First install rust

cargo build --release

Close any running process with existed shim. then

./repshims.bat

Executable Size

Without crt-static enabled: around 200kb

With crt-static enabled: around 300kb

Description
shim written in rust
Readme 356 KiB
Languages
Rust 95.1%
Batchfile 4.9%