Every new language comes with a package manager for easy dependency support. Swift Package Manager (SPM) is a tool that is integrated with the Swift system for distributing your Swift projects and using shared ones. It works on Linux and macOS, which makes it the best choice for developers writing backend applications using Swift.
We already know that the code in Swift is organized in modules. Sharing modules which solve common tasks is a breeze with SPM. We need to define which modules we want to use in our project and then they will be cooked for us.
In Package.swift, we describe all dependencies (where the source code is located, external dependencies) and what kind of project we are building. Here is an example of a manifest file:
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "Weather Service",
products: [
...