September 5, 2019



Updates and Last Week

Tom posted an update to forums about security information dissemination and how we'll handle those situations.

HTTP Client Update:

There have still been some minor breaking changes. Goal is to reach a 1.0.0 soon, particularly to support frameworks and projects that are adopting this. Current goal is to aim for early October. Possibly alpha releases released through September leading to official release.

Brings up some questions around connection pools

Connection Pools:

Basic question is whether to build a generalized solution now, and more importantly if that's possible given multiple right answers and use cases. Currently most support for letting a few solutions develop in the ecosystem and then engineering based on those various requirements to see if a shared/generic solution can be found. However, risk here is that if we don't encourage a general solution early, then the projects could diverge too much. Vapor has a low level somewhat generic and lightweight connection pool that might be worth looking into adaptation to other requirements.

Try! Swift New York Presentations

Ian - SSWG
Tom - HTTPClient

SSWG Blog Post (Update) - Tanner

Finalizing blog post with some questions over topics following below.


Demangling Names - A swift evolution was made to include demangle. It was asked for revision, but basic request now is to pass string, and get an optional demangled string. Current state is not accepted, and the workaround is functional in interim.

Want to be transparent that this library is a temporary solution that is working well, but with the main goal of filling a gap while the swift ecosystem figures out the best backtracing solution. In interim, consensus seems to be that there is value in pushing it through the sswg considering how useful it is and how many packages are already adopting. Can change for another solution in future when Swift language takes on more of this.

Ian will go ahead and start thinking about what it would take to push this through the sswg. Currently some undefined behavior, but since we're crashing anyway, it's low risk, aside from potential deadlock due to malloc. This should be run in a cloud in a container 99% of the time w a health check that would restart the container anyways, so even w potential deadlock, it's still low risk. Preallocation of some things could solve this, but will start moving through sswg either way.

Potential Forum Focus Area

Possibly highlight some focus areas that don't have as much active progress, but are on the horizon. Tanner has been collecting some of these and will link them out in a way for people to get involved. Some sort of regular (yearly?) update of focus areas might be good to keep the development horizon in view.


Still need to look into some other groups and how they're handling code of conduct etc. For current library, there are some changes that are api breaking that we're trying to evaluate and possibly structure to avoid this.


Check in with Will Lisacs on progress

MongoDB Driver

Continue to support authors in moving through process.


There are some questions around the dns client and wanting to get support, but also questions about whether this may eventually be integrated into NIO. NIO is open source, the community wants something that is maybe not immediate priority to apple, so what is the process for people to add things to swift nio and get involved?

Would be a good test case of a sort of "NIO Pitch" over a new sswg library pitch, with the goal of attracting people. For this particular package, because it can function as a separate package, might be better to develop in a separate repo for immediate use with the goal of full integration into nio.

Tanner will help facilitate

Package Discoverability a new site that is basically a collection of swift packages, and it's a nice way to find dependents etc.. sswg packages have been mostly added, but should we encourage community packages as well in some way? a company that started as a security warning idea to track packages and alert based on vulnerabilities, out of date warnings, etc. They don't currently have swiftpm support, but might be friendly.

github - possible integrations there


For connection pools, GitHub - neallester/ManagedPool-sw: A tunable thread safe pool of objects with internally managed expiration. may be of use. I'm currently not using it since mongo-swift-driver switched over to their own internal pool.