Skip to content

Show HN: Lightweight C++23 S3 client with no extra deps (just curl and OpenSSL)

github.com/ggcr
5 pointsggcr5 comments
On HN

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!

Comments

You may want to look into coroutines so that the data can be fetched asynchronously.

ggcrOP

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.

ggcrOP

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

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.