返回首页
最新
TagLib-Wasm 是一个将 C++ TagLib 库的 WebAssembly 版本封装为 TypeScript/JavaScript API 的工具,使您能够使用 Deno、Node.js、Bun、Electron、Cloudflare Workers 或浏览器读取和写入 MP3、FLAC、M4A、OGG、WAV 及其他音频文件格式的元数据。
```javascript
import { readTags, updateTags } from "taglib-wasm/simple";
const tags = await readTags("song.flac");
console.log(tags.title, tags.artist, tags.album);
await updateTags("song.flac", { title: "New Title", artist: "New Artist" });
```
我开发 TagLib-Wasm 是因为 JavaScript 生态系统中缺乏一个完整的跨格式音乐元数据库。现有的选项要么仅支持 MP3,要么需要本地二进制文件,或者无法写入标签。TagLib 本身经过严格测试(它为 VLC、Kodi、Strawberry 等提供支持),但没有 Wasm 构建版本。
在服务器运行时(Deno、Node.js、Bun)中,它会自动选择一个支持快速高效基于查找的 I/O 的 WASI 后端。在浏览器中,它使用 Emscripten 进行全缓冲 I/O。无需任何配置。
这是第一个 1.0 版本的测试版。我非常欢迎您对 API 设计/开发体验、缺失的格式/功能以及我未考虑到的使用案例提供反馈。
[https://charleswiltgen.github.io/taglib-wasm/](https://charleswiltgen.github.io/taglib-wasm/)
嗨,HN,
我创建了MOL,这是一种针对AI管道的领域特定语言。主要思想是:管道操作符 |> 自动生成执行跟踪——显示每一步的时间、类型和数据。无需日志记录,也无需打印调试。
示例:
```
let index be doc |> chunk(512) |> embed("model-v1") |> store("kb")
```
这会自动打印一个跟踪表,显示每一步的执行时间和输出类型。Elixir和F#都有 |>,但都不支持自动跟踪。
其他功能:
- 12种内置领域类型(文档、块、嵌入、向量存储、思维、记忆、节点)
- 保护断言:`guard answer.confidence > 0.5 : "Too low"`
- 90多个标准库函数
- 可转译为Python和JavaScript
- 使用Lark的LALR解析器
解释器是用Python编写的(约3500行)。通过68个测试。可以在PyPI上安装:`pip install mol-lang`。
在线演示(无需安装):[http://135.235.138.217:8000](http://135.235.138.217:8000)
我们正在将其作为IntraMind的一部分构建,IntraMind是CruxLabx的一个认知计算平台。