Home - adambajguz/Typin GitHub Wiki
Welcome to the Typin wiki!
Typin is a simple to use, yet powerful framework for building both interactive command line applications and command line tools. It is build based on the source code of CliFx.
Etymology: Typin is made out of "Typ" for "Type" and "in" for "interactively". It's pronounced as "Ty pin".
Setup
Install the package via NuGet: dotnet add package Typin
What next?
See: Typin concepts and basic app and advanced features
Versioning
Typin follows Semantic Versioning 2.0.0. Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
Contribute
There's still a good deal of work to be done to make Typin great. If you want to help, please comment on or open an issue, or contribute.
Recent code for
*-dev-*
or*-rc-*
releases can be found ondevelop
branch.
CliFx
Since Typin has its roots in CliFx you may also be interested in this simpler CLI Framework.
Differences between Typin and Clifx:
- Interactive mode with auto-completion, parameter escaping with
"
, and support for user-defined shortcuts, - Middleware pipeline,
- Custom directives,
- Build-in DI support with
Microsoft.Extensions.DependencyInjection
that is used accross entire framework, - IOptionFallbackProvider for custom fallback providers instead of only environment variable fallback,
- Ability to modify exception handling messages,
- DI injectable
ICliContext
with lots of useful data, - Introduced negative numbers handling,
- Manual property in
CommandAttribute
that can be used to provide a long, extended description of a commmand - Custom help writer.
- Custom modes support and application lifetime.
- Startup message color personalization through a callback method.
- Console IO wrapper classes (
StandardStreamReader
andStandardStreamWriter
) and IO interfaces. - Logging with
Microsoft.Extensions.Logging
. - Native support for
Half
,DateOnly
, andTimeOnly
. - Optional option names by providing a kebab case name.
- Better char parsing: support for the following escape sequences: '\0', '\a', '\b', '\f', '\n', '\r', '\t', '\v', '\\', and Unicode escape e.g. \u006A).
- (more coming soon).
See CHANGELOG.md for a complete list of changes.