AsmBB – 用汇编语言编写的轻量级网络论坛引擎

💡 原文中文,约1400字,阅读约需4分钟。
📝

内容提要

AsmBB是一个使用汇编语言编写的Web应用程序,使用SQLite作为数据库后端。它支持加密数据库,安全性高。AsmBB易于定制和修改,使用强大的模板系统。它可以在低配置的主机环境中工作,并为大量访问者提供服务。AsmBB支持FastCGI接口的Web服务器,并已通过多个服务器进行了测试。它还支持Atom/RSS提要和实时通知引擎。AsmBB的用户界面可以选择不同的语言。它还支持两种标记语言,包括BBCode。

🔎

延伸解读

加密数据库的取舍

AsmBB 的加密数据库将密钥仅存于内存,不落盘,因此即使服务器或备份介质泄露,数据库内容仍受保护。但代价是每次论坛引擎重启(通过 Web 界面)都需手动输入密钥,期间论坛不可访问。文章指出该应用长期稳定,此类重启可能数月甚至数年才发生一次,但若服务器意外重启,仍需人工介入恢复。此外,加密数据库强制要求使用 SSL/TLS。

低资源与高并发的实现基础

AsmBB 能在低配置 VPS 甚至共享主机(需支持 FastCGI)上运行,同时服务大量访问者。这得益于完全用汇编语言编写、减少依赖,以及使用 SQLite 插件 SQLeet。运行环境仅需 x86 Linux 服务器(32 或 64 位),无需预装专门库。已测试的 Web 服务器包括 Nginx、Apache、Lighttpd、Hiawatha 和 RWASA。

实时通知与订阅机制

v2.6 引入 Atom/RSS 提要,用户可订阅整个论坛、特定标签或特定主题,并在变更时收到通知。实时通知引擎基于服务器发送事件(SSE)重写,统一处理所有用户,不再局限于实时聊天。SSE 通过单线程服务所有客户端,可同时支持任意数量访问者且服务器负载很低。目前实现的通知类型有限,但基础设施易于扩展。

国际化与迁移便利

用户界面国际化允许每个用户选择不同语言,目前提供英语、保加利亚语、俄语和法语,翻译错误被预期并欢迎提交更正。AsmBB 新增 BBCode 解析器,现支持 MiniMag 和 BBCode 两种标记语言。由于 BBCode 是最流行的论坛标记语言,这允许创建从其他论坛引擎迁移的脚本,降低迁移门槛。

❓

Q&A

AsmBB 是用什么语言编写的?它使用什么数据库?

AsmBB 完全用汇编语言编写,并使用 SQLite 作为数据库后端,还使用了 SQLite 插件 SQLeet。

AsmBB 对服务器硬件和软件有什么要求?

AsmBB 对运行环境要求很少:x86 Linux 服务器(32 位或 64 位),无需预装专门库,最小/最便宜的 VPS 或支持 FastCGI 的共享主机即可。它支持 FastCGI 接口的 Web 服务器,并已通过 Nginx、Apache、Lighttpd、Hiawatha 和 RWASA 测试。

AsmBB 的数据库加密是如何工作的?有什么优缺点?

AsmBB 支持加密数据库,加密密钥从不存储在磁盘上,仅临时存储在 RAM 中。这样即使服务器或备份介质出现安全漏洞,也不会损害数据库、账户属性或个人数据。唯一已知的问题是每次论坛引擎重启(通过 Web 界面)时都必须输入加密密钥,导致服务器偶然重启时论坛会暂时无法访问。此外,使用加密数据库必须使用 SSL/TLS。

AsmBB 如何实现实时通知?支持哪些通知方式?

AsmBB 通过服务器发送事件(SSE)实现实时通知,SSE 服务已重写为统一处理所有用户,并通过单个线程为所有客户端服务,可同时支持任意数量访问者且服务器负载很低。目前支持 Atom/RSS 提要,用户可订阅整个论坛、特定标签或特定主题,并在发生更改时收到通知。

AsmBB 的用户界面支持哪些语言?

AsmBB 的用户界面支持国际化,每个用户可以为论坛界面选择不同的语言。目前提供 4 种语言:英语、保加利亚语、俄语和法语。翻译中可能存在错误,欢迎提交更正。

AsmBB 支持哪些标记语言?这对论坛迁移有什么帮助?

AsmBB 支持两种标记语言:MiniMag 和 BBCode。BBCode 是最流行的论坛标记语言,其解析器允许创建用于从其他论坛引擎迁移的脚本,便于论坛迁移。

🏷️

标签

➡️

继续阅读