ModuleInterface alternatives and similar libraries
Based on the "Command Line" category.
Alternatively, view ModuleInterface alternatives based on common mentions on social networks and blogs.
-
Marathon
Marathon makes it easy to write, run and manage your Swift scripts -
Commander
Compose beautiful command line interfaces in Swift -
CommandLine
A pure Swift library for creating command-line interfaces -
Swiftline
Swiftline is a set of tools to help you create command line applications. -
Guaka
The smartest and most beautiful (POSIX compliant) Command line framework for Swift 🤖 -
CommandCougar
Simple & Elegant Command Line Interfaces in Swift -
Scaffold
Tool for generating code from Stencil templates, similar to rails gen
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ModuleInterface or a related project?
README
ModuleInterface
Swift tool to generate Module Interfaces for Swift projects.
What is a Module Interface
A Module Interface is what we commonly get using the CMD+click on an import
statement in our codebases. SourceKit generates the code on demand. It can be a great tool and source of documentation.
Examples
- [Commandant](Examples/Commandant.swift)
- [Mini](Examples/Mini.swift)
- [SourceKittenFramework](Examples/SourceKittenFramework.swift)
- [Yams](Examples/Yams.swift)
- [SwiftLintFramework](Examples/SwiftLintFramework.swift)
Usage
To generate the module interface from your project, or library, run the moduleinterface
command directly from the root your project.
$ cd ~/path/to/MyAppOrFramework
$ moduleinterface generate
This command will analyze your MyAppOrFramework project and generate the module interface for the types that have the minimum access level defined. The module interface is written to the directory Documentation relative to the root of your project repository.
Usage options
$ moduleinterface help
Available commands:
clean Delete the output folder and quit.
generate Generates the Module Interface
help Display general or command-specific help
version Display the current version of ModuleInterface
Typing moduleinterface help <command>
we get a list of all options for that command:
Generates the Swift Module Interface.
[--spm-module (string)]
Generate documentation for Swift Package Manager module.
[--module-name (string)]
Generate documentation for a Swift module.
[--input-folder (string)]
Path to the input directory (defaults to /Users/minuscorp/Documents/GitHub/ModuleInterface).
[--output-folder (string)]
Output directory (defaults to Documentation).
[--min-acl (string)]
The minimum access level to generate documentation. Defaults to public.
--clean|-c
Delete output folder before generating documentation.
[[]]
List of arguments to pass to xcodebuild.
Usually, for most Xcode projects, no parameters are needed at all. xcodebuild should be able to find the default project and scheme.
If the command fails, try specifying the scheme (-scheme SchemeName) or the workspace. Any arguments passed to moduleinterface
after --
will be passed to xcodebuild without modification.
$ moduleinterface generate -- -scheme MyScheme
For Swift Package Manager modules, you can the module name using the --spm-module parameter.
$ moduleinterface generate --spm-module ModuleInterface
Installation
Download Binary
$ curl -Ls https://github.com/minuscorp/ModuleInterface/releases/download/latest/moduleinterface.macos.zip -o /tmp/moduleinterface.macos.zip
$ unzip -j -d /usr/local/bin /tmp/moduleinterface.macos.zip
From Sources
Requirements:
Swift 5.1 runtime and Xcode installed in your computer.
Using Homebrew
brew tap minuscorp/moduleinterface
brew install moduleinterface
Building with Swift Package Manager
$ git clone https://github.com/minuscorp/ModuleInterface.git
$ cd ModuleInterface
$ make
Contact
Follow and contact me on Twitter at @minuscorp.
Contributions
If you find an issue, just open a ticket on it. Pull requests are warmly welcome as well.
License
ModuleInterface is licensed under the Apache 2.0. See LICENSE for more info.
Acknowledegments
- To @eneko for giving me the tooling idea.
- To SourceKitten for providing such an awesome Framework for dealing with SourceKit.
- To BQ for all the mentoring.
*Note that all licence references and agreements mentioned in the ModuleInterface README section above
are relevant to that project's source code only.