boitalettres/doc/draft.md
2022-05-19 10:21:14 +02:00

40 lines
1.1 KiB
Markdown

# Just Enough Doc
## Run `simple` example
This example is meant to show basic service-based IMAP server with boitalettres library.
- [Source code](../examples/simple.rs)
```shell
$ export RUST_LOG="info,simple=trace,boitalettres=trace"
$ export RUSTFLAGS="--cfg tokio_unstable"
$ cargo run --example simple
```
- Test it manually
Theoretically, IMAP server expected end of lines with `\r\n` but implementations are more liberal.
To check with `\r\n`, use the `socat` command line.
The `nc` command line will send only `\n` when run on Linux, our current implementation supports it.
```
$ socat readline tcp4:127.0.0.1:4567,crnl
$ nc 127.0.0.1 4567
```
- [Basic python testing script](../scripts/test_imap.py)
```shell
$ python scripts/test_imap.py
```
## Notes
- The library use the `tracing` library for logging, a basic setup is shown in the `simple` example with the `tracing-subscriber` crate.
## References
- [`imap-codec`](https://docs.rs/imap-codec): IMAP protocol model+encoder/decoder
- [`tower`](https://docs.rs/tower): Service-based request handling library