6 个版本 (3 个重大更新)
0.4.0 | 2023年8月21日 |
---|---|
0.3.0 | 2023年3月5日 |
0.2.0 | 2022年12月20日 |
0.1.2 | 2022年11月22日 |
在 网络编程 中排名 1282
每月下载量 46 次
215KB
3.5K SLoC
adenosine-cli
: AT 协议 (atproto.com) 命令行客户端
这是一个简单、面向爱好者的 AT 协议(atproto.com)客户端。有点像 http
命令(HTTPie)。
这是一个完全“委托”的客户端,这意味着它不会在本地存储或缓存任何用户内容;所有操作都是通过向个人数据服务器(PDS)发起请求来完成的,这通常是一个远程服务。
目前这个工具的唯一实际用途是玩弄原型实现,可能在开发它们的同时。
这个客户端目前不会对 Lexicons 执行任何模式验证,无论是在编译时还是在运行时(例如,动态获取 Lexicons)。Bluesky Lexicon(bsky.app)通过辅助命令部分支持。
有一个手册页,其中包含使用细节和示例。
功能
- 通用的 XRPC 调用(GET 和 POST)
- com.atproto Lexicon 实现
- repo CAR 文件导入/导出
- 部分 app.bsky Lexicon 实现
- 完整的 app.bsky Lexicon 实现
- did:plc 服务器交互和链验证
- 使用 JSON 标志以美观方式打印 bsky 记录(例如,时间线)
- 测试覆盖率
可能未来的功能
- 记录/请求的 Lexicon 模式验证
- DID 解析到仓库位置(独立于 PDS)
- 在 homedir 点文件中保存登录/配置
安装
adenosine-cli
是用 Rust 实现的,理论上可以在多个平台上以二进制形式分发。
待办事项:为 Linux 创建 Debian 软件包
否则,您需要从源代码构建 CLI 工具。安装 Rust 编程语言工具链的最新版本(例如,使用 rustup
)。
顶级工作区包含 PDS 代码,它有一个庞大的依赖树,构建速度较慢。如果您只需要 CLI,请在运行任何 cargo
命令之前进入 adenosine-cli
目录
cd adenosine-cli
cargo install
快速入门
您需要一个实际的PDS服务器来与之交互。截至2022年11月,这可能是一个独立的实现,如adenosine-pds
,或者更正式的bluesky-social/atproto
原型(参见本地atproto开发快速入门)。
设置ATP_PDS_HOST
环境变量。然后注册一个测试账户,或者为现有账户创建一个新的会话,并将JWT令牌保存到ATP_AUTH_TOKEN
# default port for bluesky-social/atproto implementation
export ATP_PDS_HOST=http://localhost:2583
# default port for adenosine-pds implementation
export ATP_PDS_HOST=http://localhost:3030
# register a new account
adenosine account register -u voltaire.test -p bogus -e voltaire@example.com
{
"did": "did:plc:yqtuksvatmmgngd5nkkw75hn",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkaWQ6cGxjOnlxdHVrc3ZhdG1tZ25nZDVua2t3NzVobiIsImlhdCI6MTY2Njk5NjMwNn0.MMQa4JIQdwvhy-rjJ0kO-z8-KdoOL0Lto9JtOkK-lwE",
"username": "voltaire.test"
}
export ATP_AUTH_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkaWQ6cGxjOnlxdHVrc3ZhdG1tZ25nZDVua2t3NzVobiIsImlhdCI6MTY2Njk5NjMwNn0.MMQa4JIQdwvhy-rjJ0kO-z8-KdoOL0Lto9JtOkK-lwE
# to clear the auth token env variable in current shell
unset ATP_AUTH_TOKEN
# create a new session (login) for existing account
adenosine account login -u voltaire.test -p bogus
{
"did": "did:plc:yqtuksvatmmgngd5nkkw75hn",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkaWQ6cGxjOnlxdHVrc3ZhdG1tZ25nZDVua2t3NzVobiIsImlhdCI6MTY2Njk5NjQxNX0.j2wcF1g9NxT_1AvYRiplNf_jtK6S81y3L38AkcBwOqY",
"name": "voltaire.test"
}
export ATP_AUTH_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkaWQ6cGxjOnlxdHVrc3ZhdG1tZ25nZDVua2t3NzVobiIsImlhdCI6MTY2Njk5NjQxNX0.j2wcF1g9NxT_1AvYRiplNf_jtK6S81y3L38AkcBwOqY
您可以将ATP_PDS_HOST
和ATP_AUTH_TOKEN
值保存到~/.bashrc
中,这样您就不需要每次都输入它们。
现在您可以开始发帖和探索了
adenosine status
adenosine bsky post "gruel again for breakfast"
{
"cid": "bafyreig2aqlsg4arslck64wbo2hnhe6k2a4z3z2sjfzh3uapv3a4zjld7e",
"uri": "at://did:plc:yqtuksvatmmgngd5nkkw75hn/app.bsky.post/3jg5zkr322c2a"
}
adenosine ls at://voltaire.test
开发和贡献
目前支持的最小Rust版本(MSRV)是1.61,使用2021版Rust。
欢迎贡献、讨论、错误报告和手写信件。这是一个低投入的业余项目,因此可能不会提供高接触支持、功能请求、增长策略等。
源代码许可证是AGPLv3。请在任何初始贡献中承认这一点,并说明您是否以及如何希望作为贡献者得到认可(例如,姓名和可选的URL)。
依赖关系
~41–56MB
~1M SLoC