Typin 3.1.0-dev-00014

This is a prerelease version of Typin.
Install-Package Typin -Version 3.1.0-dev-00014
dotnet add package Typin --version 3.1.0-dev-00014
<PackageReference Include="Typin" Version="3.1.0-dev-00014" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Typin --version 3.1.0-dev-00014
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Typin, 3.1.0-dev-00014"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Typin as a Cake Addin
#addin nuget:?package=Typin&version=3.1.0-dev-00014&prerelease

// Install Typin as a Cake Tool
#tool nuget:?package=Typin&version=3.1.0-dev-00014&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

See wiki for detailed instructions and documentation. See CHANGELOG.md for a complete list of changes. Visit Typin repo for examples and source code. Visit TypinExamples website for interactive examples. See also Typin.Core library.


THIS IS A DEVELOPER PREVIEW OF Typin 3.0.0! SOME FEATURES MAY NOT WORK!


Typin, pronounced as "Type in", is a simple to use, yet powerful framework for building both interactive command line applications and command line tools (Type in == Type interactively). Typin is not just a parser but a complete application framework. Its main goal is to provide an enjoyable, similar to ASP.NET Core, development experience when building command line applications.

logo

Typin is build based on the source code of CliFx, but it wants to be a ASP.NET Core for CLI like Cocona but faster. It has many additional features compared to CliFx:

  • Interactive mode with auto-completion, parameter escaping with ", and support for user-defined shortcuts,
  • Middleware pipeline,
  • Custom directives that can be used as either flags (IDirective) or dynamic pipeline extensions (IPipelinedDirective),
  • IOptionFallbackProvider for custom fallback providers instead of only environment variable fallback,
  • Build-in DI support with Microsoft.Extensions.DependencyInjection that is used accross entire framework,
  • Build-in options support with Microsoft.Extensions.Options,
  • Ability to modify exception handling with one or more exception handlers,
  • Ability to execute commands from other commands or services with ICliCommandExecutor (NOT RECOMMENDED, except for custom CLI mode classes),
  • DI injectable ICliContext with lots of useful data,
  • Manual property in CommandAttribute that can be used to provide a long, extended description of a command,
  • Custom help writer.
  • Custom modes support and application lifetime management.
  • Startup message color personalization through a callback method.
  • Console IO wrapper classes (StandardStreamReader and StandardStreamWriter) and IO interfaces.
  • Logging with Microsoft.Extensions.Logging.
  • Optional option and parameter names by automatically generated 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).
  • Native support for parsing Half type in .NET 5 targeted applications.
  • Validation can be easily added with FluentValidation and a middleware.
  • Console input/output targeted extensions through IStandardInput, IStandardOuput, IStandardError, IStandardOutputAndError, IStandardRedirectableConsoleStream, StandardStreamReader, StandardStreamWriter.

Overall, Typin is a framework that is much more flexible and rich with both features and metadata about defined commands etc.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Typin:

Repository Stars
adambajguz/Typin
Declarative framework for interactive CLI applications
Version Downloads Last updated
3.1.0-dev-00014 99 5/20/2021
3.0.4 42 9/16/2021
3.0.3 161 4/6/2021
3.0.2 90 4/5/2021
3.0.1 208 3/22/2021
3.0.0 116 2/23/2021
3.0.0-dev-00013 171 1/6/2021
3.0.0-dev-00010 220 12/12/2020
3.0.0-dev-00007 218 12/6/2020
3.0.0-dev-00006 170 11/17/2020
3.0.0-dev-00003 252 11/8/2020
3.0.0-dev-00002 247 11/7/2020
2.1.1 658 10/18/2020
2.0.0 141 10/2/2020
1.0.1 235 8/23/2020
1.0.0 424 8/23/2020
0.4.0-beta 145 8/23/2020
0.3.2-beta 170 8/23/2020
0.2.2-beta 165 8/19/2020
0.1.4-beta 383 8/18/2020