Skip to content

Feedback requested on port of libs3 to MSVC #230

Closed
@ned14

Description

@ned14

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions