Show HN: Lightweight C++23 S3 client with no extra deps (just curl and OpenSSL)
github.comAttached is my attempt at making a small toy S3 client without any other dependency besides libcurl and OpenSSL. Was tested mainly on MinIO (RIP) locally, so I would expect some bugs when using it against AWS, although I was able to play with it on some open access buckets
Be aware that I am not a C++ programmer and this project was indeed done to learn a bit of C++ myself :')
Feedback on any of the code, either on gtest, or the benchmarking section or the core itself is welcome!
You may want to look into coroutines so that the data can be fetched asynchronously.
Yep! I'd also like to explore C++26 reflection for the XML FSM parser I currently have
Everything so far is synchronous. In our toy benchmarks I've found out Go to be quite performant, perhaps it's using go-routines behind the scenes (?) Haven't explored their internals yet but I was surprised
“Just” curl and openssl. Those are not small and do a ton of lifting… easily adds 2-3mb to a static binary.
Fair point. Should've titled it "minimal dependencies" perhaps
Since C++ has no HTTP client in its std lib, I really had no other choice but to use curl. Same with OpenSSL. It'd be quite naïve of me to re-implement the whole HTTP stack and SHA256 from scratch =)
a lightweight car kit that comes with everything you need to build a fully working car! All you need to add is a working engine (sold separately).