https://github.com/kaandesu/cgossh
🚧 Playing with C & Go concurrency with ssh client/server for learning purposes.
https://github.com/kaandesu/cgossh
c golang learning-purpose ring-buffer semaphore ssh ssh-client ssh-server
Last synced: about 1 month ago
JSON representation
🚧 Playing with C & Go concurrency with ssh client/server for learning purposes.
- Host: GitHub
- URL: https://github.com/kaandesu/cgossh
- Owner: kaandesu
- License: mit
- Created: 2024-02-27T15:54:08.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-26T13:34:39.000Z (about 2 years ago)
- Last Synced: 2024-05-18T07:45:28.881Z (about 2 years ago)
- Topics: c, golang, learning-purpose, ring-buffer, semaphore, ssh, ssh-client, ssh-server
- Language: C
- Homepage:
- Size: 49.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# cgossh
Self created coding challenge that shall use a C-based ssh client, to do
some arbitrary asynchronous operations, and a Go-based server side, to
handle those actions also asynchronously.
---
Coding challenge: _I'll update here but for now the very simple goal is
something like: to create an array of ordered numbers and send it to
the server, and asynchronously handling those messages and store them._
---
#### Main focus topics of the challenge
**C (client) side**:
- Ring buffer library
- Semaphores
- Sorting algorithm
- Unit Testing
- SSH Client library
**Go (server) side**:
- Channels
- Go coroutines
- Using a ssh server library ([wish](https://github.com/charmbracelet/wish))
- Builtin unit testing
Maybe fun to add ideas:
- Bubbletea tui for the go-side
- Accessing some data or invoking some events from an API implemented in the go-side
#### TODO
- [x] Client setup of MacOS
- [x] added unit testing with [criterion](https://github.com/Snaipe/Criterion)
- [x] added [bear](https://github.com/rizsotto/Bear) instead of CMake
- [ ] Client setup for Ubuntu 18.04
- [ ] Server setup
- [ ] Update/fix Makefile