| Crates.io | flare-im-core |
| lib.rs | flare-im-core |
| version | 0.1.1 |
| created_at | 2025-03-03 07:49:28.044814+00 |
| updated_at | 2025-03-07 07:44:32.377569+00 |
| description | A high performance instant messaging core library for Flare framework |
| homepage | |
| repository | https://github.com/flare152/flare |
| max_upload_size | |
| id | 1575264 |
| size | 220,608 |
IM Core 是一个支持 WebSocket 和 QUIC 协议的即时通讯核心库,提供客户端和服务端功能实现。
该库提供以下 feature flags:
client: 客户端功能,包含 WebSocket 和 QUIC 客户端实现server: 服务端功能,包含 WebSocket 和 QUIC 服务端实现full: 完整功能,包含客户端和服务端所有功能(等同于同时启用 client 和 server)默认启用客户端和服务端功能:default = ["client", "server"]
client
├── tokio-tungstenite (WebSocket 支持)
├── quinn (QUIC 支持)
├── rustls (TLS 支持)
└── rustls-pemfile (证书处理)
server
├── tokio-tungstenite (WebSocket 支持)
├── quinn (QUIC 支持)
├── rustls (TLS 支持)
└── rustls-pemfile (证书处理)
[dependencies]
flare_im_core = { version = "0.1.0", default-features = false, features = ["client"] }
[dependencies]
flare-im-core = { version = "0.1.0", default-features = false, features = ["server"] }
[dependencies]
flare-im-core = { version = "0.1.0" } # 使用默认 features
# 或者
flare-im-core = { version = "0.1.0", features = ["full"] }
use flare_im_core::client::websocket::WsClient;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = WsClient::new("ws://localhost:8080/chat")
.with_auth_token("your-token")
.build()?;
client.connect().await?;
client.send_message("Hello").await?;
Ok(())
}
use flare_im_core::server::quic::QuicServer;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let server = QuicServer::new()
.with_cert_path("cert.pem")
.with_key_path("key.pem")
.build()?;
server.listen("127.0.0.1:8443").await?;
Ok(())
}
WebSocket
tokio-tungstenite 实现QUIC
quinn 实现TLS 配置
rustls 提供 TLS 支持认证机制
WebSocket
QUIC