- 核心功能从 store/ 迁移至 oss/core/ 框架层 - 实现 NBPF 包格式:多重签名(Ed25519+RSA-PSS+HMAC)+ 多重加密(AES-256-GCM) - 实现 NIR 编译器:基于 compile()+marshal 的跨平台中间表示 - 新增 nebula nbpf CLI 命令组(pack/unpack/verify/sign/keygen) - 新增 19 个 NBPF 测试用例,覆盖全链路 - 彻底重写 README,大型项目标准框架风格,所有图表使用 SVG - 更新 LICENSE 版权声明 - 清理旧版 store 插件目录(已迁移至 oss/core)
53 lines
2.6 KiB
XML
53 lines
2.6 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 220" font-family="'SF Mono','JetBrains Mono','Fira Code',monospace">
|
|
<defs>
|
|
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
|
|
<stop offset="0%" stop-color="#0f0f1a"/>
|
|
<stop offset="100%" stop-color="#1a1a2e"/>
|
|
</linearGradient>
|
|
<linearGradient id="blue" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0%" stop-color="#6366f1"/>
|
|
<stop offset="100%" stop-color="#8b5cf6"/>
|
|
</linearGradient>
|
|
<linearGradient id="green" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0%" stop-color="#22c55e"/>
|
|
<stop offset="100%" stop-color="#16a34a"/>
|
|
</linearGradient>
|
|
<linearGradient id="orange" x1="0" y1="0" x2="1" y2="1">
|
|
<stop offset="0%" stop-color="#f59e0b"/>
|
|
<stop offset="100%" stop-color="#d97706"/>
|
|
</linearGradient>
|
|
<filter id="shadow">
|
|
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="#000" flood-opacity="0.3"/>
|
|
</filter>
|
|
<marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto">
|
|
<path d="M 0 0 L 10 5 L 0 10 z" fill="#6366f1"/>
|
|
</marker>
|
|
</defs>
|
|
<rect width="600" height="220" fill="url(#bg)" rx="10"/>
|
|
|
|
<text x="300" y="28" text-anchor="middle" fill="#a5b4fc" font-size="11" font-weight="bold" letter-spacing="3">NIR 编译流程</text>
|
|
|
|
<!-- Python 源码 -->
|
|
<rect x="225" y="45" width="150" height="32" rx="6" fill="url(#blue)" opacity="0.85" filter="url(#shadow)"/>
|
|
<text x="300" y="65" text-anchor="middle" fill="#fff" font-size="11" font-weight="bold">Python 源码</text>
|
|
|
|
<!-- 箭头 -->
|
|
<line x1="300" y1="77" x2="300" y2="95" stroke="#6366f1" stroke-width="1.5" marker-end="url(#arrow)"/>
|
|
<text x="320" y="90" fill="#6366f1" font-size="9">compile()</text>
|
|
|
|
<!-- code object -->
|
|
<rect x="200" y="98" width="200" height="32" rx="6" fill="url(#green)" opacity="0.85" filter="url(#shadow)"/>
|
|
<text x="300" y="118" text-anchor="middle" fill="#fff" font-size="11" font-weight="bold">code object (字节码)</text>
|
|
|
|
<!-- 箭头 -->
|
|
<line x1="300" y1="130" x2="300" y2="148" stroke="#6366f1" stroke-width="1.5" marker-end="url(#arrow)"/>
|
|
<text x="320" y="143" fill="#6366f1" font-size="9">marshal.dumps()</text>
|
|
|
|
<!-- .nir 文件 -->
|
|
<rect x="225" y="151" width="150" height="32" rx="6" fill="url(#orange)" opacity="0.85" filter="url(#shadow)"/>
|
|
<text x="300" y="171" text-anchor="middle" fill="#fff" font-size="11" font-weight="bold">.nir 文件</text>
|
|
|
|
<!-- 底部说明 -->
|
|
<text x="300" y="208" text-anchor="middle" fill="#4b5563" font-size="9">跨平台 · Python 3.10+ · 代码混淆保护</text>
|
|
</svg>
|