57 lines
2.2 KiB
Markdown
57 lines
2.2 KiB
Markdown
## Cworker mini framework
|
||
|
||
A minimalist kit for creating a network or local service
|
||
using only C (replacing a previously written and lost one).
|
||
|
||
Purpose: to create system services
|
||
|
||
Available:
|
||
* cflexer/cfparser - configuration file parsing
|
||
* cllexer/clparser - parsing command line options
|
||
* jlexer/jparser - json parsing (minimal key-value for now)
|
||
* rcache - buffered reading from open descriptor
|
||
|
||
* cworker - network service framework
|
||
|
||
## Cworker mini framework
|
||
|
||
Минималисткий набор для создания сетевого или локального сервиса
|
||
с использованием только C (взамен ранее написанного и утерянного).
|
||
|
||
Цель: создание системных сервисов, для которых использование
|
||
иных языков нерационально или невозможно.
|
||
|
||
В наличии:
|
||
* cflexer/cfparser - разбор конфигурационого файла
|
||
* cllexer/clparser - разбор опций коммандной строки
|
||
* jlexer/jparser - разбор json описания (пока минимальные key-value)
|
||
* rcache - буферизованное чтение из открытого дескриптора
|
||
* cworker - каркас сетевого сервиса
|
||
|
||
В разработке.
|
||
|
||
## Mini RPC example
|
||
|
||
```
|
||
$ echo '{"name":"john"}' | nc 127.0.0.1 9002
|
||
{"message":"hello, john!","error":false}
|
||
```
|
||
|
||
## Log output example
|
||
|
||
```
|
||
./cworker --port=9002 --nofork=true
|
||
2023-08-19T11:32:10.370258433+EET debug: Init service
|
||
2023-08-19T11:32:10.370280138+EET debug: Configuration reading
|
||
2023-08-19T11:32:10.370319130+EET debug: Reading options
|
||
2023-08-19T11:32:10.370328274+EET debug: Listening port: 9002
|
||
2023-08-19T11:32:10.370332182+EET debug: Service building
|
||
2023-08-19T11:32:10.370359884+EET debug: Service running
|
||
2023-08-19T11:32:16.691927462+EET debug: Service 4699 forked
|
||
2023-08-19T11:32:16.692127033+EET warning: Cannot bind id
|
||
2023-08-19T11:32:16.692477102+EET debug: Handler 4699 done
|
||
2023-08-19T11:32:32.59611040+EET debug: Service 4704 forked
|
||
2023-08-19T11:32:32.59758420+EET warning: Cannot bind id
|
||
2023-08-19T11:32:32.60009124+EET debug: Handler 4704 done
|
||
```
|