mirror of https://github.com/mum4k/termdash.git
1.7 KiB
1.7 KiB
termdash
This project implements a terminal based dashboard. The feature set is inspired by the gizak/termui project, which in turn was inspired by a javascript based yaronn/blessed-contrib. Why the rewrite you ask?
- The above mentioned gizak/termui is abandoned and isn't maintained anymore.
- The project doesn't follow the design goals outlined below.
- The project is released under a licence I cannot use.
Design goals
This effort is focused on good software design and maintainability. By a good software I mean:
- Write readable, well documented code.
- Only beautiful, simple APIs, no exposed concurrency, channels, internals, etc.
- Follow Effective Go.
- Provide an infrastructure that allows development of individual dashboard components in separation.
- The infrastructure must enforce consistency in how the dashboard components are implemented.
- Focus on maintainability, the infrastructure and dashboard components must have good test coverage, the repository must have CI/CD enabled.
On top of that - let's have fun, learn something and become better developers together.
Requirements
- Native support of the UTF-8 encoding.
- Simple container management to position the widgets and set their size.
- Mouse and keyboard input.
- Cross-platform terminal based output.
- Unit testing framework for simple and readable tests of dashboard elements.
- Tooling to streamline addition of new widgets.
- Apache-2.0 licence for the project.
High-Level design
See the design document.