8个版本

0.1.8 2024年7月17日
0.1.7 2022年6月22日
0.1.6 2022年5月31日

#388 in 网络编程

Download history 70/week @ 2024-07-11 41/week @ 2024-07-18 10/week @ 2024-07-25

121 每月下载次数

LGPL-2.1-or-later

1MB
21K SLoC

简易IRC服务器

LGPL 2.1 License Crate version

这是一个用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