开源了一个类似 SQLite 设计哲学的容器运行时 BoxLite - 嵌入式、无守护进程、硬件级隔离 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
d0r1an
V2EX    推广

开源了一个类似 SQLite 设计哲学的容器运行时 BoxLite - 嵌入式、无守护进程、硬件级隔离

  •  
  •   d0r1an 6 天前 1814 次点击

    受 SQLite "small, fast, reliable" 理念启发,做了一个可嵌入的容器运行时。

    核心特点:

    • 无 daemon ,作为库嵌入你的应用
    • 硬件级隔离( microVM ),不只是 namespace
    • 支持 Docker/OCI 镜像
    • macOS Apple Silicon + Linux

    主要场景:AI Agent 沙箱、多租户隔离、本地开发

    Rust 写的,提供 Python SDK ,pip install boxlite 即可

    GitHub: https://github.com/boxlite-labs/boxlite

    欢迎 star 和反馈

    21 条回复    2025-12-23 18:14:20 +08:00
    xnplus
        1
    xnplus  
       6 天前
    能介绍个应用场景么
    EscYezi
        2
    EscYezi  
       6 天前 via iPhone
    这是好东西啊,期待一下 nodejs sdk (希望能兼容 bun )
    d0r1an
        3
    d0r1an  
    OP
       6 天前
    @xnplus 场景比较多,例如可以让 Claude Code 放在 BoxLite 里面跑,这样不管他执行什么代码都不用担心危害主机

    例如用 BoxLite 起一个带 desktop 的 Linux ,这样可以作为 computer use 使用

    https://github.com/boxlite-labs/boxlite-mcp

    这里面有一些例子,可以看看哈,感兴趣可以交流交流
    d0r1an
        4
    d0r1an  
    OP
       6 天前
    @EscYezi 收到,有没有兴趣一起搞搞,这个项目是 Apache 2.0 开源
    musi
        5
    musi  
       6 天前   3
    两个小时内发了五个帖子推广项目是不是有点“丧心病狂了”
    musi
        6
    musi  
       6 天前
    @musi #5 搞错了,是四个帖子
    d0r1an
       7
    d0r1an  
    OP
       6 天前
    @musi 抱歉,我是分不同主题发布的,我不太懂 v 站规矩,谢谢指出
    kuanat
        8
    kuanat  
       6 天前 via Android
    我感觉这个实现和 podman/macOS 非常像啊,应该是基于 libkrun 的封装吧。

    没来得及看代码,请教几个问题。如果是 rust 的库,那调用 gvisor 网络栈应该是直接打包二进制子进程的形式吧,有考虑过用 go 吗?问这个主要是我不清楚它运行时需要哪些依赖,有没有可能做到完全的静态链接。

    对 oci 镜像的支持是如何实现的?我能想到的是找个临时路径展开,不过这样做好像比较麻烦,其他方案要支持 macOS 比较难。

    这个实现里有跑 guest 应用吗?感觉处理 tty 也比较麻烦。
    d0r1an
        9
    d0r1an  
    OP
       5 天前
    @kuanat 现在就是静态链接的,然后为了解决多平台问题,使用了较低的 glibc 进行编译,感兴趣的话帮忙点个 star ,我们多交流交流~
    MindMindMax
        10
    MindMindMax  
       5 天前
    https://github.com/zerocore-ai/microsandbox 似乎都在做雷同的场景。
    d0r1an
        11
    d0r1an  
    OP
       4 天前
    @MindMindMax 嗯,你仔细看看,不太一样的,你可以都使用使用
    MindMindMax
        12
    MindMindMax  
       4 天前
    @d0r1an 使用场景和最终解决到的问题没啥本质区别:都是快速启动 vm ,然后在里面执行具体的指令么。


    ```
    import asyncio
    import boxlite


    async def main():
    async with boxlite.SimpleBox(image="python:slim") as box:
    result = await box.exec("python", "-c", "print('Hello from BoxLite!')")
    print(result.stdout)


    asyncio.run(main())

    ```


    ```
    import asyncio
    from microsandbox import PythonSandbox

    async def main():
    async with PythonSandbox.create(name="test") as sb:
    exec = await sb.run("name = 'Python'")
    exec = await sb.run("print(f'Hello {name}!')")

    print(await exec.output()) # prints Hello Python!

    asyncio.run(main())
    ```
    d0r1an
        14
    d0r1an  
    OP
       4 天前
    @MindMindMax 如果是从 API 角度去看的话,所有数据库都是一样的,但是 API 只是产品生命周期中的一部分
    d0r1an
        15
    d0r1an  
    OP
       4 天前
    @MindMindMax 咱们现在有需求么
    MindMindMax
        16
    MindMindMax  
       4 天前
    我看了下代码,确实你的这个项目某些方面更完备一些
    @d0r1an
    MindMindMax
        17
    MindMindMax  
       4 天前
    @d0r1an 我个人觉得,你可以发到 hackernews 上宣传一下。可能有很多人感兴趣。
    d0r1an
        18
    d0r1an  
    OP
       4 天前
    @MindMindMax 有没有兴趣一起参与,现在 BoxLite 只是其中一部分,我还是想把 Agent 的 serverless 和 runtime 全部做成开源的
    d0r1an
        19
    d0r1an  
    OP
       4 天前
    @MindMindMax 好主意!!!
    MindMindMax
        20
    MindMindMax  
       4 天前
    @d0r1an 有兴趣,但是我不是 Rust 技术栈的, 。Golang+Python 方面的倒是可以搞搞。
    d0r1an
        21
    d0r1an  
    OP
       4 天前
    没事,你先熟悉熟悉,如果有什么感兴趣的先建个 issue ,我们讨论下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2583 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 06:35 PVG 14:35 LAX 22:35 JFK 01:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86