大家好,
我构建了一个运行时环境,用于通过 WebAssembly 沙箱隔离不可信代码。基本上,它保护您的主机系统免受不可信代码可能引发的问题。最近我们对 Python 中的沙箱化进行了深入讨论,更详细地阐述了这个问题[1]。在 TypeScript 中,由于两个生态系统之间的紧密联系,WebAssembly 的集成显得更加自然。
核心部分是用 Rust 编写的。在此基础上,我通过 wasmtime 和组件模型使用了 WASI 0.2,并结合自定义 SDK,使其尽可能符合语言习惯。
例如,在 Python 中,我们有一个简单的装饰器:
```python
from capsule import task
@task(
name="analyze_data",
compute="MEDIUM",
ram="512mb",
allowed_files=["./authorized-folder/"],
timeout="30s",
max_retries=1
)
def analyze_data(dataset: list) -> dict:
"""在一个隔离的、资源受控的环境中处理数据。"""
# 您的代码在 Wasm 沙箱中安全运行
return {"processed": len(dataset), "status": "complete"}
```
在 TypeScript 中,我们有一个包装器:
```typescript
import { task } from "@capsule-run/sdk"
export const analyze = task({
name: "analyzeData",
compute: "MEDIUM",
ram: "512mb",
allowedFiles: ["./authorized-folder/"],
timeout: 30000,
maxRetries: 1
}, (dataset: number[]) => {
return {processed: dataset.length, status: "complete"}
});
```
您可以设置 CPU(通过 compute)、内存、文件系统访问权限和重试次数,以精确控制您的任务。
虽然现在还处于早期阶段,但我非常希望能听到反馈。我会在这里回答问题。
GitHub: [https://github.com/mavdol/capsule](https://github.com/mavdol/capsule)
[1] [https://news.ycombinator.com/item?id=46500510](https://news.ycombinator.com/item?id=46500510)
返回首页
一周热榜
嗨,HN,我是Credibly的创始人。
我创建这个工具是因为我注意到SaaS创始人面临一个反复出现的问题:客户的好评散落在Twitter、Slack和电子邮件中,但为了整理这些内容以便放在着陆页上,手动操作总是被优先级降低。
我希望能有一种方法,可以将数据“倾倒”到一个系统中,并使其变得有用。我解决了一些技术难题:
- 使用OCR技术可靠地从杂乱的客户截图中提取文本。
- 进行情感分析和“异议处理”分析,以评估哪些推荐信实际上有助于转化。
- 构建一个轻量级的小工具,不会影响页面的Lighthouse评分。
目前,该工具可以通过电子邮件活动或Google评论自动收集反馈。我希望能听到你们对“推荐智能”评分的反馈——它真的能帮助你选择合适的社交证明吗,还是有些过于复杂?
请查看一下: [https://getcredibly.org](https://getcredibly.org)
我会在这里回答关于技术栈或逻辑的任何问题!
问候,HN!<p>我会简明扼要,有人知道或参与过软件工程师的合作社吗?如果有,情况如何?<p>我之所以好奇,是因为似乎绝大多数早期融资都用于支付软件开发费用,而一小组工程师理论上可以创造出价值几百万美元的产品。这可能对风险投资公司不具吸引力,但或许可以形成一个让合作社成员过上非常舒适生活的商业模式。
这是一个免费的开源高优化Rust程序,它通过Claude Code(CC)中的预工具钩子运行,并检查CC即将进行的工具调用,以确定其是否可能具有破坏性;也就是说,是否可能删除数据、丢失工作、删除表格等。
您可以通过GitHub链接获取该程序,并使用便捷的一行命令进行安装。
像dcg这样的工具有几个相互竞争的目标,这使得它成为一个需要谨慎平衡的工程难题:
1. 由于它在每一次工具调用时都会运行,因此必须非常快速。这就是为什么它是用Rust编写的,并且极大地关注于尽可能提高速度。
2. 它必须避免令人烦恼的误报,这会浪费您的时间,增加摩擦,并不必要地将您重新引入瓶颈。我同时运行数十个代理,不希望它们在不必要的情况下浪费时间等待我。通常,dcg发出的消息足以让代理在执行操作时更加谨慎。
3. 仅仅使用简单的规则书,寻找像“rm -rf /”或“git reset --hard HEAD”这样的固定命令是不够的。模型非常灵活,会使用临时的Python或bash脚本或其他多种方式来绕过简单的限制。这就是为什么dcg有一个非常复杂的、基于ast-grep的层,当它检测到临时(“heredoc”)脚本时会启动。但在可能的情况下,它使用更快的SIMD优化正则表达式。
4. 这样的工具应该是可扩展的,并具备对各个领域的语义知识,以及在这些领域中什么构成破坏性行为。例如,如果您在AWS上处理S3桶,您可能会遇到一个看起来并不像正常删除的高度破坏性命令。这就是为什么dcg开箱即用时就提供了大约50个预设,可以根据您的项目技术栈轻松启用(只需让CC分析您的项目目录,找出需要启用的包)。
5. dcg旨在非常友好于代理。它不仅仅是阻止命令,还会解释原因,并根据对代理使用的特定命令的分析提供安全的替代方案。例如,它可能会阻止代理删除您的Rust项目的构建目录,但建议使用“cargo clean”作为替代。通常,这些消息足以让Claude意识到问题。
我真的无法夸大dcg为我节省了多少时间和挫折。每个曾经与编码代理经历过这些令人不快的经历的人都应该知道并使用它。
dcg与我在agent-flywheel.com项目中的所有其他工具一起提供。所有工具都是免费的,采用MIT许可证,并提供丰富的教程和其他教育资源,适合经验较少的人。试试看,您不会后悔的!
我一直在使用可寻址的LED灯带(5V、12V、24V)进行安装。相同的几种故障模式反复出现:长距离运行时出现暗尾、随机闪烁或闪烁,以及连接器成为薄弱环节。
以下是一些对我帮助最大的做法:
将电源分配视为首要设计任务:尽早规划注入点,保持供电线短,并避免将所有电流都通过一端。
始终在控制器和灯带之间共享一个稳定的地线,并保持数据传输路径简单。当线路变长或环境噪声增大时,在数据源附近添加一个小的串联电阻和适当的电平转换(3.3V到5V)通常可以提高稳定性。
假设连接器是“消耗品”:应考虑应力缓解,防水处理需要保持可维护性,高电流线路应选择更保守的方案。
我很好奇你们在注入间距、分支熔断和故障排除方面最可靠的经验法则是什么。如果你有值得信赖的检查清单或测量方法,我很想学习。
嗨,HN,
我正在研究用于软件开发的 AI 代理。这些代理会自动启动短暂的应用实例——例如,每个拉取请求、每个任务或每个实验——每个实例都有其自己的临时 URL。
身份验证采用标准方式处理:
- OAuth2 / OIDC
- 外部身份提供者
- 重定向 URL 必须提前注册并且是静态的
这与短暂应用的特性产生了严重冲突:
- URL 是动态且不可预测的
- 重定向 URL 实际上无法提前注册
- 身份验证成为了一个完全自动化工作流中唯一非短暂的部分
我看到团队通常采取的替代方案包括:
- 在预览环境中禁用真实身份验证
- 将所有回调路由通过一个稳定的环境
- 使用通配符重定向或代理设置,这些方法感觉像是变通方案
对于 AI 开发代理来说,这尤其尴尬,因为它们假设基础设施是可丢弃的并且完全自动化——没有手动的身份提供者配置参与其中。
所以我很好奇:
1. 如果你使用短暂的预览应用,你是如何处理真实身份验证的?
2. 是否有适用于动态 URL 的清晰 OAuth/OIDC 模式?
3. 静态重定向 URL 的假设在这里仍然是正确的模型吗?
4. 在生产环境中,什么方法实际上有效?
我在寻找真实的设置和失败故事,而不是理论。
在阅读了Sparkbox上的《在Helene期间,我只想要一个纯文本网站》(<a href="https://news.ycombinator.com/item?id=46494734">https://news.ycombinator.com/item?id=46494734</a>)后,我建立了safe-now.live——一个面向美国和加拿大的文本优先紧急信息网站。没有JavaScript,没有图片,大小不到10KB。该网站实时获取FEMA灾害、NWS警报、天气和当地资源。这是我第一次上线的网站,因此希望能得到大家对网站的反馈。欢迎随意浏览。<p><a href="https://safe-now.live" rel="nofollow">https://safe-now.live</a>
我正在构建 Tabularis,一个原生数据库客户端(Rust + Tauri)。
MySQL 的支持已经相当不错,但 PostgreSQL 的实现要困难得多——这并不是因为性能问题,而是因为 <i>自省</i>。
Postgres “可以工作”,但一旦超出基本的表和列,事情就会迅速变得复杂。
到目前为止,我遇到的一些问题包括:
- 类型系统:
数组、JSON/JSONB、域、自定义类型、范围、几何类型——大多数客户端要么将它们扁平化为文本,要么处理不一致。
- 模式自省:
information_schema 的功能有限。
pg_catalog 功能强大但微妙。
触发器、函数、分区表、继承、物化视图都需要特殊处理。
- PostgreSQL 特有的用户体验:
CTE 重的查询、EXPLAIN ANALYZE 输出、PostGIS / pgvector 等扩展——这些无法干净地映射到通用的数据库抽象。
我目前使用 SQLx 和信息模式 + pg_catalog 查询的组合,但我相信还有更好的模式我尚未发现。
我希望能得到以下人的反馈:
- 编写过复杂 PostgreSQL 自省查询的人
- 对 PostgreSQL 客户端应该如何表示模式和类型有看法的人
- 对现有 PostgreSQL 图形用户界面感到沮丧的人
代码库(Apache 2.0):https://github.com/debba/tabularis
我乐于学习、迭代,并修正错误的假设。