8个版本 (5个稳定版)
3.0.0-beta | 2020年4月10日 |
---|---|
3.0.0-alpha | 2020年3月31日 |
2.3.0 | 2020年3月19日 |
2.0.0 | 2020年2月24日 |
1.0.0 | 2020年2月20日 |
#5 in #irc-v3
275KB
5.5K SLoC
可爱
此仓库包含一些可能对21世纪IRC工匠有所帮助的crate。它们围绕现代IRC服务器(或IRCd,简称)构建。您将特别发现
- 一个IRC解析库,ellidri-tokens,它提供了解析IRC消息和模式字符串的正确和高效工具,
- ellidri-unicase,提供对字符串的包装,使其对IRC的不同大小写映射不敏感,
- 一个IRC服务器,ellidri,旨在易于设置、广泛兼容、功能完整且可扩展。
要讨论ellidri及其它,请加入IRC频道: #ellidri on freenode!还有一个测试服务器在ellidri.org上运行,如果您想尝试它!
本文件的其余部分关于ellidri,即IRC服务器。所有其他项目都有自己的README.md
。
特性
支持的扩展: account-notify
, away-notify
, batch
, cap-notify
, echo-message
, extended-join
, invite-notify
, labeled-response
, message-ids
, message-tags
, multi-prefix
, sasl
, server-time
, setname
, userhost-in-names
ellidri不支持任何服务器到服务器(S2S)协议。因此,不可能让多个ellidri实例管理同一个IRC网络。
ellidri要求客户端使用UTF-8,目前它只支持ascii
作为大小写映射。
构建和安装
先决条件
- Rust 编译器(至少版本 1.39,使用 PostgreSQL 时的版本为 v1.41)和 Cargo:[https://rustup.rs/](https://rustup.rs/)
- SQLite 3(如果启用了
sqlite
功能) - PostgreSQL 客户端库(如果启用了
postgres
功能) - 在 Linux 上,OpenSSL 库及其开发文件
使用 cargo install ellidri
安装 ellidri,或使用 [AUR 软件包](https://aur.archlinux.org/packages/ellidri/).
在开发期间,使用 cargo build
构建,并使用 cargo run
运行。
对于打包,使用 cargo build --release --locked
构建。release
标志将启用优化,而 locked
标志将需要有效的锁文件(Cargo.lock
),以确保开发和发布使用相同的依赖项。可执行文件生成在 target/release/ellidri
。
用法
ellidri 必须使用配置文件启动,例如
# Configuration file
domain your.domain.tld
# Bind to an address and port.
bind_to 127.0.0.1:6667
# TLS-enabled port, with a PKCS12 archive.
bind_to 0.0.0.0:6697 /var/lib/ellidri/identity.p12
# Default is /etc/motd
motd_file custom_motd.txt
然后使用 --config
参数启动 ellidri,如下所示
ellidri --config /path/to/the.configuration.file
包含所有设置及其默认值的示例配置文件可以在 doc/ellidri.conf
中找到。
贡献
欢迎提交补丁!以下是一些开始链接
- 文档:[https://docs.rs/ellidri](https://docs.rs/ellidri)(请注意!此文档仅显示公共项目,但私有项目也有文档!开发者可以通过以下命令手动生成文档)
- Git 仓库:[https://git.sr.ht/~taiite/ellidri](https://git.sr.ht/~taiite/ellidri)
- 在 [Github](https://github.com/hhirtz/ellidri) 上提交 PR 或将补丁发送到邮件列表:[https://lists.sr.ht/~taiite/public-inbox](https://lists.sr.ht/~taiite/public-inbox)
- 在问题跟踪器上报告错误:[https://todo.sr.ht/~taiite/ellidri](https://todo.sr.ht/~taiite/ellidri)
在开发 ellidri 时,您可以使用以下命令生成所有项目的文档
cargo doc --no-deps --document-private-items --open
致谢
没有 [https://ircdocs.horse](https://ircdocs.horse) 的帮助,ellidri 就无法存在。感谢 Daniel Oaks 和 [所有其他贡献者](https://github.com/ircdocs/modern-irc/graphs/contributors)!
还要感谢 [IRCv3 工作组](https://ircv3.net/charter) 对现代化 IRC 协议所做的工作!
许可证
ellidri 使用 ISC 许可证。有关副本,请参阅 LICENSE
。
依赖项
~11–27MB
~378K SLoC