Swift Server Work Group

Welcome to the home of the Swift Server work group. When it was formed in 2016, the work group set out to create a low-level API that’s common among Swift server frameworks. That API now exists in the form of SwiftNIO, an asynchronous event-driven network application framework. It addresses a lot of the requirements set forth by the original work group:

In addition to achieving these goals, SwiftNIO was also quickly adopted by two of the major web framework products in the Swift community: IBM Kitura and Vapor.

Work Group

The Swift Server work group is a steering team that promotes the use of Swift for developing and deploying server applications. The Swift Server work group will:

Analogous to the Core Team for Swift, the work group is responsible for providing overall technical direction and establishing the standards by which libraries and tools are proposed, developed and eventually recommended. Membership of the work group is contribution-based and is expected to evolve over time.

The current Swift Server work group consists of the following people:

Community Participation

There isn’t a distinction between stakeholders and contributors for this effort. Everyone is welcome to contribute in the following ways:

These conversations will take place on the Swift Server forum. Over time, the work group may form smaller teams to focus on specific technology areas.

The main goal of the Swift Server work group is to eventually recommend libraries and tools for server application development with Swift. The difference between this work group and the Swift Evolution process is that server-oriented libraries and tools that are produced as a result of work group efforts will exist outside of the Swift language project itself. The work group will work to recommend libraries and tools as they move into their release stages.

Incubation Process

The details of the process under which libraries and tools become recommended still needs to be formalized. One of the first goals of the Swift Server work group is to define this process. For now, the general idea is that it will take a federated approach with the following conditions:

The Swift Server work group will direct the incubation of new server-focused libraries and tools through four phases: Determine Need, Proposal, Prototyping and Development, and Recommendation.

Determine Need

To start this process, the work group first determines and maintains a prioritized list of what’s needed for development and deployment of Swift server applications. The purpose of this list is to seed the community with ideas that will help solicit the creation of proposals.

Proposal

As proposals are brought forth by the community, the work group will evaluate them against the following criteria:

A proposal is then reviewed and socialized with the wider Swift community as a “Pitch” in the Server forums, similar to how Swift Evolution handles them.

Prototyping and Development

Once a proposal is approved by the work group and input has been received from the wider community via the Swift Server forum, prototyping and development can begin. The work group and the greater Swift Server community will work to sponsor and promote incubation proposals, but once approved, libraries and tools can be prototyped and developed independently of the group.

Once the full set of functions has been developed, released, adopted and feedback acted on, the work group will branch a formal recommendation process.

Recommendation

As mentioned earlier, the Swift Server work group will be defining a formal process to determine how a library or tool will be recommended. Watch this space for more information as the details develop. Currently SwiftNIO is the only recommended library by the Swift Server work group.

Forums

The Swift Server work group uses the Server forum for general discussion.