Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/liamnichols/swiftpackagemanifest
A set of libraries used for parsing representations of Swift Packages similar to how SwiftPM itself works, but also supporting Xcode specific features (such as Swift Playground Apps).
https://github.com/liamnichols/swiftpackagemanifest
Last synced: about 1 month ago
JSON representation
A set of libraries used for parsing representations of Swift Packages similar to how SwiftPM itself works, but also supporting Xcode specific features (such as Swift Playground Apps).
- Host: GitHub
- URL: https://github.com/liamnichols/swiftpackagemanifest
- Owner: liamnichols
- Created: 2022-01-03T01:45:58.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-08T11:47:43.000Z (almost 3 years ago)
- Last Synced: 2023-08-02T21:25:50.996Z (over 1 year ago)
- Language: Swift
- Size: 59.6 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Swift Package Manifest
A set of libraries used for parsing representations of Swift Packages similar to how SwiftPM itself works, but also supporting Xcode specific features (such as Swift Playground Apps).
As part of this package, there are two libraries:
- **ManifestDescription** - Models used to represent the contents of a SPM Manifest.
- **ManifestLoading** - Classes capable of loading `Manifest` representations from **Package.swift** source files.
- **ManifestWriting** - Capable of writing out a **Package.swift** file based on a `Manifest` representation.## ManifestLoading
The ManifestLoading library exposes a simple `ManifestLoader` protocol with two concrete implementations provided:
`SyntaxBasedManifestLoader`|`XcodeBasedManifestLoader`*
---|---
Loads simple manifest files by walking though the Swift AST provided by [SwiftSyntax](https://github.com/apple/swift-syntax). Won't work with anything other than literal values defined in the `Package` initializer expression, but can be used on iOS.|Compiles the **Package.swift** and evaluates the JSON output exactly like Swift Package Manager does. This is much more reliable, but requires macOS.
_* Not yet implemented_