356 private links
Let's see how it goes
How to measure web server capacity resource management: here a quick introduction with Rust snippets.
#idea: rewrite it in JS for backend in JS.
A typical medium-sized Rust service packaged this way weights between 20 and 40 MB before compression and between 8 and 15 MB after compression. Not bad!
It can be useful to recognise and identify files
Another product supporting Rust.
It should provide insights on rust crates.
What bad patterns are encouraged by design in Rust?
- complicated types
- complicated macro
- premature optimizations with lifetimes among others
A text editor... for lawyers.
We have it for developers and for scientists (I mean you LaTeX and Overleaf).
Why not as it can improve their writing.
How a rewrite in Rust is beneficial to read many files? Because it avoids allocation.
Note the program was written once in JS then in Rust.
About using C code:
- there obviously the potential bugs and vulnerabilities in the C code itself and in the code wrapping the C code.
- specific C toolchains, which makes things hard when you do cross compilation.
- you (sometimes) need to deploy the dynamically-linked C library (OpenSSL). It prevents you from using secure FROM scratch container images.
- can't compile it for WebAssembly.
- maintenance! it's hard to review a 2000 line implementation of an encryption algorithm
Pure Rust cryptography is usually around 10-25% slower than an ultra optimized C or assembly code.
Différent ways to handle errors in Rust.
In favor of the clap crate that allows delevopers to build quickly in Rust.
The naive Rust implémentation is 10 times faster than the python one.
It remains 6 times faster than the optimized one.
The Python has a collections.Counter class that is approximately as fast as the naive Rust version.
It does not work on my Raspberry Pi yet for atuin
I get a:
atuin: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.39' not found (required by atuin)
A hello world binary works fine though.
rustup target add armv7-unknown-linux-gnueabihf
sudo apt-get install gcc-arm-linux-gnueabihf libgcc-13-dev-armhf-cross
- In
~/.cargo/config.toml
:[target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc"
cargo build --target=-armv7-unknown-linux-gnueabihf --target-dir=$(pwd)
- Upload the binary in
armv7-unknown-linux-gnueabihf/debug
directory to the raspberry pi and run it.
After a first successful installation, only 4. and 5. are required.