Checkout my most notable open-source projects. Pull requests and issues are welcome! All code is mirrored and accessible at git.ciehanski.com.
libgen-cli is a CLI tool used to access the Library Genesis dataset; written in Go. I built this tool when I discovered the Library Gensis project. I’m a firm believer in the ideals behind the project, but the websites used to acces their dataset are difficult to navigate and download pages are riddled with adware. So, to mitigate this poor user expierence, I created libgen-cli (originally forked from Antoine Chiny)! You can also download multiple books concurrently (useful for automation) and download the currently available Library Genesis database dumps. Currently libgen-cli is being used in various countries around the world, which I think is cool.
onionbox allows users to send and receive files securely through Tor. It works by embedding a local copy of Tor within the onionbox binary where API calls can be made to connect to the Tor network and create a hidden onion service. A simple webpage is then hosted at the root of that hidden onion service’s URL where users can upload files and share a uniquely generated URL with their recipients for download. By default, the onion URL presented is randomly generated, but you also have the option to roll your own V3 onion address for the webserver to host the onion service on. onionbox can be used on multiple platforms and also has a docker image available.
oniongen-hs is a vanity URL generator for Tor version 3 .onion addresses, lovingly written in Haskell. It was heavily inspired by the project oniongen-go by rdkr. This was an extremely satisfying & fun project with the purpose of teaching myself Haskell.
kip is a CLI backup tool written in Rust. Multiple storage providers are supported such as S3, USB, and SMB (WIP). kip provides encrypted backups using XChaCha20Poly1305 AEAD with a 24-byte nonce generated by OS calls. The key used is a 32-byte hash of a user provided secret utilizing argon2id, a hybrid version of the key derivation functions: argon2i & argon2d. This is used for verifying any changes to your backup jobs as well as encrypting all files that are uploaded to the specified provider. Compression is enabled by default using zstd. FastCDC is implemented for deduplication. Lastly, all uploads are completed asyncrousnously for S3!
nvim-git-line is a Neovim plugin written in Lua to quickly open the buffer’s current line in GitHub (or GitLab) with your default browser. This was a really fun quick and easy project to teach myself Lua and pieces of the nvim API.