Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds a feature no-c-deps which makes microbin easy to crosscompile
With `no-c-deps` enabled microbin can be compiled for aarch64 by simply passing in `--no-default-features`, `--no-c-deps` & `--target aarch64-unknown-linux-musl`. The resulting binary is fully static and does *not* depend on glibc. Therefore it can be deployed to any linux target running an aarch64 cpu (arm). There is no need for any containers. There where four obstactles to easily statically linking microbin with musl. - The syntect library depended on the onigura regex engine. With `no-c-deps` it uses `fancy-regex` a slower alternative fully written in rust. - Dependency actix-web supported zstd compression requiring the system zstd library to be present. - The rusqlite library build and linked the C-library sqlite. That needs a crosscompiler and various crosscompile packages. With `no-c-deps` enabled the sqlite db option is disabled and the -json-db arg must be used. If the user does not pass -json-db microbin will panic when starting with a clear error message. - reqwest was using openssl for reporting telemetry and checking for new versions. With `no-c-deps` it uses rustls with crypto provider rustcrypto. While rustcrypto has not been formally verified it should be good enough for sending telemetry (which should not contain any secure/personal data anyway) and checking versions.
- Loading branch information