V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
d0r1an
V2EX  ›  推广

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

  •  
  •   d0r1an · 5 天前 · 1778 次点击

    受 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  
       5 天前
    能介绍个应用场景么
    EscYezi
        2
    EscYezi  
       5 天前 via iPhone
    这是好东西啊,期待一下 nodejs sdk (希望能兼容 bun )
    d0r1an
        3
    d0r1an  
    OP
       5 天前
    @xnplus 场景比较多,例如可以让 Claude Code 放在 BoxLite 里面跑,这样不管他执行什么代码都不用担心危害主机

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

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

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

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

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

    这个实现里有跑 guest 应用吗?感觉处理 tty 也比较麻烦。
    d0r1an
        9
    d0r1an  
    OP
       4 天前
    @kuanat 现在就是静态链接的,然后为了解决多平台问题,使用了较低的 glibc 进行编译,感兴趣的话帮忙点个 star ,我们多交流交流~
    MindMindMax
        10
    MindMindMax  
       3 天前
    https://github.com/zerocore-ai/microsandbox 似乎都在做雷同的场景。
    d0r1an
        11
    d0r1an  
    OP
       3 天前
    @MindMindMax 嗯,你仔细看看,不太一样的,你可以都使用使用
    MindMindMax
        12
    MindMindMax  
       3 天前
    @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
       3 天前
    @MindMindMax 如果是从 API 角度去看的话,所有数据库都是一样的,但是 API 只是产品生命周期中的一部分
    d0r1an
        15
    d0r1an  
    OP
       3 天前
    @MindMindMax 咱们现在有需求么
    MindMindMax
        16
    MindMindMax  
       3 天前
    我看了下代码,确实你的这个项目某些方面更完备一些
    @d0r1an
    MindMindMax
        17
    MindMindMax  
       3 天前
    @d0r1an 我个人觉得,你可以发到 hackernews 上宣传一下。可能有很多人感兴趣。
    d0r1an
        18
    d0r1an  
    OP
       3 天前
    @MindMindMax 有没有兴趣一起参与,现在 BoxLite 只是其中一部分,我还是想把 Agent 的 serverless 和 runtime 全部做成开源的
    d0r1an
        19
    d0r1an  
    OP
       3 天前
    @MindMindMax 好主意!!!
    MindMindMax
        20
    MindMindMax  
       3 天前
    @d0r1an 有兴趣,但是我不是 Rust 技术栈的, 囧。Golang+Python 方面的倒是可以搞搞。
    d0r1an
        21
    d0r1an  
    OP
       3 天前
    没事,你先熟悉熟悉,如果有什么感兴趣的先建个 issue ,我们讨论下
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 03:54 · PVG 11:54 · LAX 19:54 · JFK 22:54
    ♥ Do have faith in what you're doing.