支持 Lua 脚本的超小型 http 服务器

我有一颗 Renesas R5F571M 处理器,它有 4MB 的 Flash 和 512K 的 RAM。 我需要运行 FreeRTOS,并且还需要一个能够运行 Lua 脚本以便使用自定义 C 代码与硬件接口的 Web 服务器。

有没有人能建议一个非常紧凑的 HTTP+Lua 服务器可以使用。 Barracuda 应用服务器看起来很理想,但价格约为 20000 美元,无法承受。 我很想能够使用 Nginx 和 PHP,但由于资源限制,不可能选择该选项。

点赞
用户2955790
用户2955790

曾经,我使用过 Lighttpd 服务器。在特定条件下,你可以将其编译为只有 ~400KB 的二进制文件(400KB << 4MB)。在后端,你可以使用 fastCGI C 库进行接口设计。后端代码可以用 C 编写。

在我看来,你可以跳过 Lua 脚本。或者如果你仍然想使用它们,可以直接使用 Lighttpd 的 mod_magnet 模块,它可以直接与 Lua 进行交互,这样你就可以跳过 FastCGI 库了。它的内存占用也比 Nginx 更小,尽管我不确定它是否小到足以适合 512KB 的 RAM 中。

p.s. Lighttpd 是免费的。

2019-01-25 09:22:07
用户4147418
用户4147418

以下是紧凑侧的列表:

  • bozohttpd http://www.eterna.com.au/bozohttpd/,这是一个 HTTP/1.x 服务器,可以运行 lua 脚本,但每个请求都会分离进程,因此在某种意义上是无状态的。
  • lhttpd https://github.com/danristea/lhttpd,这是一个 HTTP/1.x 和 HTTP/2 服务器,受到 bozohttpd 的启发,但将 lua 协程与事件系统(kqueue/epoll)集成在一起,以实现非阻塞有状态执行。

(免责声明:我是 lhttpd 的作者)

2022-11-28 09:56:29