【Rust日报】2023-08-20 Rivet – 使用 Rust 和 Nomad 进行开源游戏服务器管理

news/2024/7/10 22:20:04 标签: 开源, 游戏, 服务器, 运维

Rivet – 使用 Rust 和 Nomad 进行开源游戏服务器管理

我已经在一个名为Rivet 的项目上工作了几年,最近才开源

链接到 GitHub:https://github.com/rivet-gg/rivet

我们在构建 Rivet 时尝试了很多有趣的工具,但其中大部分都没有保留下来。我想我会分享一些你们可能会感兴趣的笔记:

  • Bolt是我们用于开发和管理超级可定制铆钉簇的工具链。这是超级过度设计的,但我喜欢它。
  • 您可以将整个存储库用作库。我们的 EE 存储库仅使用 OSS 存储库作为子模块,并将服务作为库导入。
  • 我们利用 Traefik 作为边缘代理来快速处理 UDP、TCP+TLS 和 WSS 流量。
  • Apache Traffic Server 因其大文件缓存能力而被低估。它用于边缘 Docker 拉通缓存,以减少冷启动时间并将其用作 CDN 缓存,从而降低我们的 S3 成本。
  • ClickHouse 处理分析和游戏服务器日志。事情就这么简单;没有进一步的评论。
  • 使用 Apache TS 提供 Docker 映像比运行 Docker 拉通缓存更容易、更经济。
  • 事实证明,星云作为我们的覆盖网络是可靠且易于管理的。
  • 对于复杂的、原子的、内存中的操作,我们使用 Redis Lua 脚本。
  • 显然,我们是尼克斯的粉丝。
  • 我们维护一个基本的SBOM。
  • 我们的许可是在 Apache 2.0(OSI 批准)下进行的,我们鼓励其他人运行和试验 Rivet。我们经常回答与此相关的问题:许可 为什么选择 OSS

ws-tool 0.9.0 发布

ws-tool是一个高性能的websocket库,提供同步和异步IO接口。

这是0.9.0版本的更新

  • 更多性能提升,每秒读写消息数在EchoServer示例中最高,基准数据见下文
  • 支持本机 TLS
  • 一些 API 改进
  • 一些错误修复

benchmark

300 bytes payload size, 100000000 messages

cargo lt -- -p 300 --count 100000 -t 1 <url>
servercountDuration(ms)Message/sec
uWebSocket100000000167985953089.65
tungstenite100000000199055023863.35
bench_server(无缓冲区)100000000423952358768.72
bench_server(8k)100000000165416045583.70
bench_async_server(无缓冲区)100000000457742184646.31
bench_async_server(8k)100000000163606112469.44

1M bytes payload size, 100000 messages

cargo lt -- -p 1048576 --count 100 -t 1 <url>
servercountDuration(ms)Message/sec
WebSocket100000349002865.33
tungstenite100000387452580.98
bench_server(无缓冲区)100000298543349.63
bench_server(8k)100000288873461.76
bench_async_server(无缓冲区)100000292803415.30
bench_async_server(8k)100000293843403.21

适用于 Rust 0.13 的 XRPL Ledger SDK 发布

适用于 Rust 的 XRPL SDK 是一个社区驱动的项目,提供用于连接 XRP Ledger 的易于使用的工具。它包括 HTTP 和 WebSocket 客户端、基础包和命令行工具。

https://github.com/gmosx/xrpl-sdk-rust

From 日报小组 时光

社区学习交流平台订阅:

  • Rustcc 论坛:支持 rss
  • 微信公众号:Rust 语言中文社区

http://www.niftyadmin.cn/n/4957839.html

相关文章

视频汇聚/视频云存储/视频监控管理平台EasyCVR提升网络稳定小tips来啦!

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

clickhouse的删除和更新

clickhouse不擅长更新和删除操作&#xff0c;更新操作很重&#xff0c;更新是重新创建一个分区&#xff0c;更新完后&#xff0c;太混之前的 ClickHouse提供了DELETE和UPDATE的能力&#xff0c;这类操作被称为Mutation查询&#xff0c;它可以看作ALTER语句的变种。虽然Mutation…

Laravel 模型的作用域 模型的访问器和修改器 ⑨

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; THINK PHP &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f44…

unity将结构体/列表与json字符串相互转化

编写Unity程序时&#xff0c;面对大量需要传输或者保存的数据时&#xff0c;为了避免编写重复的代码&#xff0c;故采用NewtonJson插件来将定义好的结构体以及列表等转为json字符串来进行保存和传输。 具体代码如下&#xff1a; using System; using System.IO; using Newtons…

DHCP协议原理与应用

DHCP协议原理与应用 一、DHCP协议概述1.1、场景描述1.1.1、场景描述11.1.2、场景描述21.1.3、场景描述3 二、DHCP协议工作原理2.1、DHCP简介2.2、DHCP协议名词解释2.3、DHCP服务器配置2.4、PC的DHCP设置2.5、DHCP协议工作过程2.6、DHCP协议报文及用途2.7、DHCP报文介绍2.7.1、D…

嵌入式系统常用的开发板

今天&#xff0c;了解一下常用的开发板&#xff0c;像stm32是最近了解的&#xff0c;esp8266系列是之前大三下上物联网导论课程时候接触的&#xff0c;一些树莓派&#xff0c;Arduino听说过&#xff0c;但了解不多。

【论文阅读】HOLMES:通过关联可疑信息流进行实时 APT 检测(SP-2019)

HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows S&P-2019 伊利诺伊大学芝加哥分校、密歇根大学迪尔伯恩分校、石溪大学 Milajerdi S M, Gjomemo R, Eshete B, et al. Holmes: real-time apt detection through correlation of susp…

如何使用 JavaScript Promise – 回调、异步等待和 Promise 方法解释

在本教程中,您将学习有关在 JavaScript 中使用 Promise 和 async/await 所需了解的所有内容。 那么让我们开始吧。 为什么在 JavaScript 中使用 Promise? ES6 引入了 Promise 作为原生实现。在 ES6 之前,我们使用回调来处理异步操作。 让我们了解什么是回调以及 Promise…