Puma 6.0.0 发布,关注高并发的 Ruby HTTP 服务器


Puma 是一个简单、快速、线程化并且关注高并发的 HTTP 1.1 服务器,适用于开发和生产中的 Ruby/Rack 应用。

Puma 6.0.0 现已发布,该版本更新内容如下:

  • Breaking Changes
    • 放弃对 Ruby 2.2 和 2.3 的支持(现在是 2.4+)([ #2919 ])
    • Remote_addr 功能已更改([ #2652 ],[ #2653 ])
    • 不再支持 Java 1.7 或更低版本(JRuby 9.1 是最后一个支持该版本的版本)([ #2849 ])
    • 移除 nakayoshi GC ([ #2933 ], [ #2925 ])
    • wait_for_less_busy_worker 现在默认开启 ([ #2940 ])
    • 为所有环境变量添加前缀PUMA_([ #2924 ], [ #2853 ])
    • 删除了一些常量([ #2957 ]、[ #2958 ]、[ #2959 ]、[ #2960 ])
    • 以下类现在是 Puma 私有 API 的一部分:ClientCluster::WorkerCluster::WorkerHandleRequest。([ #2988 ])
    • 移除DefaultRackup等配置常量 ([ #2928 ])
    • Events中提取LogWriter ( [ #2798 ])
  • Features

    • 将大型(100kb+)响应体的吞吐量提高 3-10 倍([ #2896 ],[ #2892 ])
    • 增加文件响应的吞吐量([ #2923 ])
    • 在 Rack 中添加对 streaming bodies 的支持。([ #2740 ])
    • 允许通过 'reuse' ssl_bind 方法或绑定字符串查询参数重用 OpenSSL 会话([ #2845 ])
    • 允许run_hooks将 hash 传递给 blocks 以供以后使用([ #2917 ],[ #2915 ])
    • 支持更高精度的 request_body_wait metric ([ #2953 ])
    • 允许 header values 是数组(Rack 3)([ #2936 ],[ #2931 ])
    • 在 /stats 中导出 Puma/Ruby 版本 ([ #2875 ])
    • 允许配置请求 uri 最大长度和请求路径最大长度([ #2840 ])
    • 添加几个公共访问器([ #2774 ])
    • 当 worker 启动失败时记录整个回溯 ([ #2891 ])
    • [jruby] 启用 TLSv1.3 支持 ([ #2886 ])
    • [jruby] 支持设置 TLS 协议 + 重命名 ssl_cipher_list ([ #2899 ])
    • [jruby] 支持 truststore 选项([ #2849 ],[ #2904 ],[ #2884 ])
  • Bug 修复

    • 在将配置传递给 binder 之前加载配置([ #2897 ])
    • 不要在不识别或不支持的 HTTP 方法上引发错误,例如 CONNECT ([ #2932 ], [ #1441 ])
    • 修复了创建新 SSL listener 时的内存泄漏 ([ #2956 ])
  • Refactor

    • log_writer.rb - 添加 internal_write 方法([ #2888 ])
    • 将 prune_bundler 代码提取到它自己的类中。([ #2797 ])
    • 重构 Launcher#run 以提高可读性(无逻辑更改)([ #2795 ])
    • Ruby 3.2 将具有原生 IO#wait_* 方法,不需要 io/wait ([ #2903 ])
    • 各种内部 API 重构([ #2942 ]、[ #2921 ]、[ #2922 ]、[ #2955 ])

更新说明:https://github.com/puma/puma/releases/tag/v6.0.0

 


相關推薦

2022-08-24

Puma 是一个简单、快速、线程化并且关注高并发的 HTTP 1.1 服务器,适用于开发和生产中的 Ruby/Rack 应用。 Puma 5.6.5 发布了,这是一个修复版本,带来如下变更: NullIO#close 应该返回 false  [ #2883 ] Puma::ControlCLI - 允许将 refork

2022-12-03

Redmine 4.2.9 和 5.0.4 已经发布。Redmine 是一个网页界面的项目管理与缺陷跟踪管理系统的自由及开放源代码软件工具。它集成了项目管理所需的各项功能:日历、燃尽图和甘特图以协助可视化表现项目与时间限制,问题跟踪和

2023-11-15

13.6 万美元。 C++ 在行业中的应用非常广泛,视频游戏、服务器、数据库、空间探测器等许多领域都可以找到 C++ 的身影。区块链生态系统中也大量使用 C++,比特币或 Solidity 智能合约语言均完全由 C++ 编写。 平均工资:~$136K

2023-03-08

Redmine 4.2.10 和 5.0.5 现已发布。Redmine 是一个网页界面的项目管理与缺陷跟踪管理系统的自由及开放源代码软件工具。它集成了项目管理所需的各项功能:日历、燃尽图和甘特图以协助可视化表现项目与时间限制,问题跟踪和版本

2023-04-01

Ruby 3.2.2 现已发布,具体更新内容包括: 为 Ruby 3.2 反向移植 [Bug #19158] by hsbt · Pull Request#7356 错误 #19415:并发要求的不正确循环警告 错误 #19400:YJIT 无法在 64 KiB 页面的 ARM64 系统上启动 错误 #19419:[BUG] 尝试在ibf_dump_mark

2022-05-21

,运行这么庞大的框架更是不可想象的难。 Archttp 版本发布前言 近几年 Golang 的发展很猛烈,比如使用 gin 框架就可以实现高并发能力的微服务应用,更是这几年的发展 NodeJS 写服务端的也是越来越多,尤其是 ExpressJS 这优秀

2023-05-25

Nginx 是一个高性能的开源 Web 服务器和反向代理服务器。它最初由 Igor Sysoev 开发,现在由 Nginx Inc. 进行维护。Nginx 可以处理高并发的连接请求和数据传输,同时拥有出色的稳定性和高可靠性。 Nginx 的优势在于其高效的内存管理

2022-08-24

送消息的复杂数据流应用程序的工具。 目前 Karafka v2.0.5 发布了,此版本更新内容如下: 修复 Ruby on Rails 的 karafka.rb 模板中不必要的双换行符 修复手动暂停的分区在重新平衡后不会被处理的情况 (#988) 提高稳定性 在 Githu

2022-06-24

React Native 0.69 已发布。此版本对新架构和新特性进行了多项改进,其中包括支持 React 18,以及与 Hermes 绑定发布。 React 18 React Native 0.69 是第一个支持 React 18 的版本。React 18 带来了许多改进,比如新 hookuseId,以及新的并发特

2023-10-16

因为在 HTTP2 中,每个请求的开销仍然非常大,并且存在并发限制,此外还会出现瀑布流和低效压缩。 目前,“打包”对于高性能网站来说是无法绕过的。 via https://twitter.com/cramforce/status/1712265070213050390 DHH 不认可 Malte

2022-07-15

联合创始人 Rocky McGaugh 致敬。 Rocky Linux 9.0 于今天正式发布,该版本基于 Red Hat Enterprise Linux 9,值得关注的更新内容包括: 桌面环境 Rocky Linux 9 将 GNOME 40 作为默认的桌面环境。重新设计的核心应用程序、设置和用户界面使 Ro

2023-01-19

ang 实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP 端口映射、SSH 中转、TLS 加密传输、协议转换、DNS 防污染智能代理、前置 CDN/Nginx 反代、代理连接重定向

2023-11-04

标 本书的目标是在作者有限的认知范围内,讨论一下高并发问题背后隐藏的一个哲学原理——找出单点,进行拆分。 内容梗概 我们将从动静分离讲起,一步步深入 Apache、Nginx、epoll、虚拟机、k8s、异步非阻塞、协程、应用网

2023-07-06

Jeepay 是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付。 v2.2.0 版本升级内容: 新增适配jdk11 17高版本支持(社区) 新增支持Kni