mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
849 字
2 分钟
NebulaShell——一个懒人做的「不懒」的项目
2026-05-10

起因#

说来好笑。我这个人懒,懒到不想重复劳动。但要命的是,我又对很多东西不满意——觉得这个框架太笨重,那个工具不安全,这个生态太封闭……

然后就变成了:因为懒,所以想一劳永逸。因为不满意,所以自己动手。

NebulaShell 就是这么来的。


它到底是什么#

一句话概括:一个以安全为基石、以插件为灵魂的运行时框架。

说人话就是:我搭了一个架子,核心只做两件事——加载插件、调度插件。其他所有功能都是插件。

想要 Web 功能?装个 HTTP API 插件。想要聊天机器人?装个对应插件。想要跟 Node.js 通信?有适配器插件。

你觉得它该有什么,它就「可以」有什么——只要你愿意写(或者有人写)。


为什么说「安全为基石」#

我见过太多「先跑起来再说」的项目了。跑着跑着就漏了——漏数据、漏权限、漏底裤。

NebulaShell 不太一样。它的插件分发格式(.nbpf)做了三层签名 + 两层加密:

  • Ed25519 签名校验发布者身份
  • RSA-4096-PSS 保证内容完整性
  • HMAC-SHA256 校验每个模块
  • AES-256-GCM 加密敏感元数据

一个插件从下载到加载,要过五关斩六将。这不是为了炫技——而是因为一旦放开插件生态,安全性就是底线。


插件化到什么程度#

这么说吧:就连插件管理器本身,也是一个插件。

热插拔、依赖注入、熔断降级、权限控制……这些不是额外功能,而是核心机制。插件可以互相调用,可以用 use() 获取其他插件的实例,可以设定加载优先级。

我甚至做了个 NIR(Nebula Intermediate Representation)——一种中间表示,让插件可以「一次编译,到处运行」。就是懒嘛,不想为不同平台分别打包。


技术栈#

  • 语言:Python 3.10+
  • CLI:Click
  • 加密:Cryptography(AES-256-GCM / Ed25519 / RSA-4096-PSS / HMAC-SHA256)
  • WebSocket:websockets
  • 部署:Docker(docker-compose)

核心依赖只有 5 个库。轻量,是我的美学。


目前的状态#

已经发布了 v1.2.0,内置了 26+ 个插件,覆盖 Web API、系统管理、安全防护、通信协议、工具增强五大类。

有 Web 管理界面,有 CLI 工具链,有 Docker 一键部署。

甚至还有一个——隐藏的成就系统。在 CLI 里输入 !!help 试试?算是我偷偷塞进去的彩蛋吧。


写在最后#

这个项目从最开始的一个念头,到现在已经长成了一个自己都没想到的样子。它还不够成熟,bug 肯定有,设计上也有需要打磨的地方。

但说实话——看着它一天天变好,还挺有成就感的。

如果你感兴趣,欢迎来看看:

starlight-apk
/
NebulaShell
Waiting for api.github.com...
00K
0K
0K
Waiting...

或者直接拉代码:

git clone https://github.com/starlight-apk/NebulaShell.git

懒人改变世界——因为懒得走,所以发明了车。

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

NebulaShell——一个懒人做的「不懒」的项目
https://www.starlight-apk.cn/posts/project/nebulashell/nebulashell/
作者
Starlight-apk
发布于
2026-05-10
许可协议
Apache License 2.0

部分信息可能已经过时

目录