Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vezel-dev/cathode
A terminal-centric replacement for the .NET console APIs.
https://github.com/vezel-dev/cathode
console csharp dotnet terminal
Last synced: 5 days ago
JSON representation
A terminal-centric replacement for the .NET console APIs.
- Host: GitHub
- URL: https://github.com/vezel-dev/cathode
- Owner: vezel-dev
- License: 0bsd
- Created: 2020-03-17T00:58:29.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T14:12:28.000Z (about 2 months ago)
- Last Synced: 2024-10-29T17:21:41.717Z (about 2 months ago)
- Topics: console, csharp, dotnet, terminal
- Language: C#
- Homepage: https://docs.vezel.dev/cathode
- Size: 1.09 MB
- Stars: 91
- Watchers: 4
- Forks: 7
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE-0BSD
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome - vezel-dev/cathode - A terminal-centric replacement for the .NET console APIs. (C\#)
README
# Cathode
A terminal-centric replacement for the .NET console APIs.
[![License](https://img.shields.io/github/license/vezel-dev/cathode?color=brown)](LICENSE-0BSD)
[![Commits](https://img.shields.io/github/commit-activity/m/vezel-dev/cathode/master?label=commits&color=slateblue)](https://github.com/vezel-dev/cathode/commits/master)
[![Build](https://img.shields.io/github/actions/workflow/status/vezel-dev/cathode/build.yml?branch=master)](https://github.com/vezel-dev/cathode/actions/workflows/build.yml)
[![Discussions](https://img.shields.io/github/discussions/vezel-dev/cathode?color=teal)](https://github.com/vezel-dev/cathode/discussions)
[![Discord](https://img.shields.io/badge/discord-chat-7289da?logo=discord)](https://discord.gg/wtzCfaX2Nj)
[![Zulip](https://img.shields.io/badge/zulip-chat-394069?logo=zulip)](https://vezel.zulipchat.com)--------------------------------------------------------------------------------
**Cathode** is a toolkit for writing terminal-based applications. It is
effectively a complete replacement for the .NET console APIs.With Windows Terminal having replaced the old Windows console host, it makes
little sense for console interaction to still be centered around the old console
host and the many limitations it had. **Cathode** provides an API centered
around a [VT100 terminal](https://vt100.net) with some extensions from later
models and modern terminal emulators. It works on all desktop platforms that
.NET supports.Please note that, since **Cathode** replaces a very fundamental component of the
framework, the use of certain framework APIs (e.g. `System.Console`) becomes
problematic. An analyzer will automatically diagnose usage of such APIs and
suggest working replacements.## Usage
This project offers the following packages:
| Package | Description | Downloads |
| -: | - | :- |
| [![Vezel.Cathode][core-img]][core-pkg] | Provides the core terminal API. | ![Downloads][core-dls] |
| [![Vezel.Cathode.Extensions][extensions-img]][extensions-pkg] | Provides terminal hosting and logging for the .NET Generic Host. | ![Downloads][extensions-dls] |[core-pkg]: https://www.nuget.org/packages/Vezel.Cathode
[extensions-pkg]: https://www.nuget.org/packages/Vezel.Cathode.Extensions[core-img]: https://img.shields.io/nuget/v/Vezel.Cathode?label=Vezel.Cathode
[extensions-img]: https://img.shields.io/nuget/v/Vezel.Cathode.Extensions?label=Vezel.Cathode.Extensions[core-dls]: https://img.shields.io/nuget/dt/Vezel.Cathode?label=
[extensions-dls]: https://img.shields.io/nuget/dt/Vezel.Cathode.Extensions?label=To install a package, run `dotnet add package `.
See the [sample programs](src/samples) for examples of what the API can do. The
samples can be run with
[`dotnet example`](https://github.com/patriksvensson/dotnet-example).For more information, please visit the
[project home page](https://docs.vezel.dev/cathode).## Building
You will need the .NET SDK installed. Simply run `./cake`
(a [Bash](https://www.gnu.org/software/bash) script) to build artifacts. You can
also use `./cake pack` if you do not want to build the documentation (which
requires Node.js).These commands will use the `Debug` configuration by default, which is suitable
for development and debugging. Pass `-c Release` instead to get an optimized
build.## License
This project is licensed under the terms found in
[`LICENSE-0BSD`](LICENSE-0BSD).