Closed
Description
Ruslan added libs3 to cmake hunter last year, but it only compiles on POSIX. At work we badly needed libs3 as the AWS C++ SDK is shocking, so I went ahead and ported it to MSVC, and you can find that PR at hunter-packages/libs3#1.
Now, these changes are a bit severe, so I've opened this issue to discuss them:
- All VLAs have been replaced with
vla<T>
, as MSVC doesn't support VLAs. - Due to the use of C++, half the C source files were ported to C++. I retained the C linkage throughout however, so it'll be ABI compatible to before.
- I disabled all the functions which use
select()
, as they are unfit for modern programs with large fd counts, and they would also drag in an otherwise unnecessary<winsock2.h>
include to the primary interface header. The internal libs3 functions which need to go wait on fds to signal I rewrote to use the non-select()
libcurl API, and those work fine.
We've rolled this library into production this morning, so we believe it is working well.
Comments? Thoughts? Is it okay if we merge this to cpp-pm and publish it?
Metadata
Metadata
Assignees
Labels
No labels