Skip to content

andrerocker/marvbot.rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

283 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marv Bot

Marv

Your rust Awesome IRC Bot, it's a personal project mainly used to play with Rust Language

Todo

  • 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

Plugins

Core

  • Ping
  • Channel / Join
  • Log

Extras

  • kafka consume
  • kafka produce
  • database
  • todo (create a todolist)
  • default ask chatgpt

About

Awesome IRC Bot / Rust Version

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors