8个版本
0.1.8 | 2024年7月17日 |
---|---|
0.1.7 | 2022年6月22日 |
0.1.6 | 2022年5月31日 |
#388 in 网络编程
121 每月下载次数
1MB
21K SLoC
简易IRC服务器
这是一个用Rust语言编写的简易IRC服务器。该服务器支持基本的IRC命令和用户模式以及频道模式。该服务器具有以下功能
- 在Tokio框架中的异步设计。
- 简单的TOML格式配置。
- 使用Argon2密码散列的密码散列。
- 可以预先定义用户、操作员和频道。
- 对客户端主机进行域名查找。
- 支持TLS连接,使用RusTLS和OpenSSL。
由于这是一个简易的IRC服务器,不幸的是,一些命令尚未支持,如:CONNECT、REHASH、RESTART、AUTHENTICATE。该服务器应仅用于具有本地IRC环境的简单安装。
构建
可以使用Cargo包系统轻松构建服务器。以下功能可以启用
- dns_lookup - 启用DNS查找,它使用Trust DNS解析器包。
- tls_rustls - 启用TLS连接支持。
- tls_openssl - 启用TLS连接支持,使用本机OpenSSL库。
在旧机器上应使用tls_openssl,因为这些机器不支持SSE2指令。rustls使用'ring' crate,这需要在X86处理器上使用更新的指令集。
要构建具有完整支持的服务器,请输入
cargo build --release --features=dns_lookup,tls_rustls
或
cargo build --release --features=dns_lookup,tls_openssl
您可以使用简单命令构建不进行DNS查找和TLS支持的服务器
cargo build --release
为了提高安全性,您可以在构建期间指定环境变量PASSWORD_SALT,为Argon2密码散列提供自己的盐。这可以是任何文本。
配置
示例配置在config-example.toml中,它描述了任何字段的配置。密码应由使用命令生成的密码散列填写
simple-irc-server -g
或
simple-irc-server -g -P password
在Password hash:
之后的文本应放入密码字段。
运行
您可以使用以下命令运行服务器
simple-irc-server -c your-config-file.toml
如果没有在配置中指定日志文件,IRC服务器可以打印一些日志到终端输出。
依赖关系
~13–28MB
~443K SLoC