init commit
This commit is contained in:
35
README.MD
Normal file
35
README.MD
Normal file
@@ -0,0 +1,35 @@
|
||||
# `rshim`
|
||||
|
||||
rshim is the [`shim`](https://github.com/71/scoop-better-shimexe) program written in rust.
|
||||
|
||||
## Why this exist?
|
||||
There are several versions of `shim`:
|
||||
1. the official [`shim.cs`](https://github.com/lukesampson/scoop/blob/master/supporting/shimexe/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`](https://github.com/71/scoop-better-shimexe) is ok with performance and Ctrl+C event handling,but sometimes suffer memory violation (randomly exited with return code `3221226356`).
|
||||
|
||||
3. [`shim.cpp`](https://github.com/kiennq/scoop-better-shimexe) 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](https://rustup.rs/)
|
||||
```shell
|
||||
cargo build --release
|
||||
```
|
||||
Close any running process with existed shim.
|
||||
then
|
||||
```shell
|
||||
./repshims.bat
|
||||
```
|
||||
|
||||
|
||||
## Executable Size
|
||||
Without `crt-static` enabled: around `200kb`
|
||||
|
||||
With `crt-static` enabled: around `300kb`
|
||||
Reference in New Issue
Block a user