Hacker News new | ask | show | jobs
Show HN: Lightweight C++23 S3 client with no extra deps (just curl and OpenSSL) (github.com)
5 points by ggcr 49 days ago
Attached 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!

3 comments

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).