Your rust Awesome IRC Bot, it's a personal project mainly used to play with Rust Language
- modules
- closures
- kafka / produce
- kafka / consume
- database / orm (diesel / sqlx)
- monads
- variables - multi assignements
- write something to the fs
- bot single thread
- dotenv
- singleton (lazy_static?)
- plugin contract should return Result (stop using :expect)
- error handling vs monads (unwrap, Option, Result, ?, etc)
- 'awesome rust' (and produtivity stuff like libs and tools)
- singleton with lazy (once_cell)
- custom types (to :return signature and :parameters)
- threads / mutex - network-io and plugin dispatch
- evented-io
- tests / unit
- kafka: rdkafka: consumer / tokio
- kafka: rdkafka: producer / tokio
- kafka: serialize messages with: cbor, protobuf, messagepack
- housekeeping: remove all unsafe :unwrap and :expect from the code
- kafka: remove rust-kafka
- kafka: up service to the latest version / kafka-native
- plugins: plugin sync vs async
- async
- threads / mutex - individual plugin execution
- bot muilti thread
- bot evented / async
- bot actor model
- bot even driven
- a way to check for blocking code (tokio flags and log)
- rust: use once_cell/Lazy instead of lazy_static!
- thread pool
- config: read file using tokio
- monorepo
- plugin types: schedule, task (default)
- housekeeping: remove all unwrap / improve error handling
- errors: play with anyhow
- macro: create a macro that wrap function and add execution time
- plugin types: blocking / rayon
- marv using event driven
- plugin: that track the execution time
- dispatch: static vs dynamic (templates vs dyn)
- use plugin as crate / external modules
- prometheus / metrics / aumentar cobertura
- tracing
- debug
- build (using docker and pipelines)
- cross platform build (arm, x86, windows, linux, macos)
- argparse
- housekeeping
- binstall
- FFI
- change log level by using signals
- logs: add debug messages
- Ping
- Channel / Join
- Log
- kafka consume
- kafka produce
- database
- todo (create a todolist)
- default ask chatgpt
