# Pingo - a simple ping visualizer written in go

to run the project, simply `go run .`

to install the project, simply `go install .`

additionally, see `bin/` for additional pre-compiled binaries

## TODO:

- main.go:// TODO(main): determine chart heights dynamically by number of addresses
- main.go:// TODO(performance): implement ping message channel buffering

> NOTE: generate this list via `git grep '// TODO' -- ':(exclude)Readme.md'`

# Core
 - [x] Implements Bubbletea framework
 - [x] Implements lipgloss styling
 - [x] Implements viewport logic via bubbles
 - [x] Implements ntcharts framework for tables

## Extras
 - [ ] Implement ssh TUI client (via wish)

## resources

| resource        | use                                |
|-----------------|------------------------------------|
| Core frameworks |                                    |
| [bubbletea][bt] | TUI framework                      |
| [lipgloss][lg]  | Terminal text formatting framework |
|-----------------|------------------------------------|
| TUI widgets     |                                    |
| [bubbles][bbl]  | widget lib for bubbletea           |
| [ntcharts][ntc] | chart widgets for bubbletea        |
|-----------------|------------------------------------|
| extras          |                                    |
| [wish][wish]    | ssh tui client                     |
|-----------------|------------------------------------|

### color palette

| base      | lower     | middle    | secondary | primary   |
|-----------|-----------|-----------|-----------|-----------|
| `#19535f` | `#0b7a75` | `#d7c9aa` | `#7b2d26` | `#f0f3f5` |

[bt]: https://github.com/charmbracelet/bubbletea
[lg]: https://github.com/charmbracelet/lipgloss
[bbl]: https://github.com/charmbracelet/bubbles
[ntc]: https://github.com/NimbleMarkets/ntcharts
[wish]: https://github.com/charmbracelet/wish

[](vim: nowrap)
