#cli-tool #graphql #substreams #generate #graphql-schema #safe #experience

bin+lib spyglass-cli

一款设计用于使 substreams 开发更加便捷和类型安全的 CLI 工具

1 个不稳定版本

0.1.0 2023 年 10 月 6 日

#2363 in 数据库接口

GPL-3.0-or-later

145KB
1.5K SLoC

Spyglass-CLI

简介

spyglass-cli 是一个用 Rust 编写的命令行界面 (CLI) 工具,旨在为与 substreams 一起工作时提供类型安全的辅助工具,特别是当使用 substreams 将数据下沉到子图时。此工具允许用户无缝集成并从不同的格式(如 .spkg.graphql)生成辅助工具。

特性

  • .spkg.graphql 文件生成 Rust 代码。
  • 与子图的类型安全交互,运行时不再出现崩溃!
  • GraphQL 模式的有效解析和代码生成。

安装

要开始使用 spyglass-cli,请确保您已安装 Rust 和 Cargo。如果您尚未安装 Rust,请参阅官方 安装指南

设置好 Rust 和 Cargo 后,只需运行

$ cargo install spyglass-cli

用法

使用 spyglass-cli 很简单。以下是一个快速指南

生成命令

从提供的 .spkg.graphql 输入文件生成 Rust 代码。

$ spyglass-cli generate <spkg_or_graphql_path> [--output-dir <output_directory>]
  • spkg_or_graphql_path: 输入 .spkg.graphql 文件的路径。
  • --output-dir: (可选) 存储生成的 Rust 代码的目录。默认为 ./src/spyglass/

示例

.spkg 文件生成代码

$ spyglass-cli generate /path/to/file.spkg

.graphql 文件生成代码并指定输出目录

$ spyglass-cli generate /path/to/file.graphql --output-dir /desired/output/dir/

依赖项

  • clap: 用于解析和处理命令行参数。
  • nom: 用于处理字节级和流式数据。
  • prost: Protocol Buffers 的编码/解码实现。
  • anyhow: 用于简单的错误处理。
  • syn:Rust 源代码的解析库。
  • prettyplease:用于生成美观 Rust 代码的工具。

贡献

我们欢迎为 spyglass-cli 做贡献!请随意分支仓库,进行修改,并提交拉取请求。请确保遵循 Rust 代码规范,并保持工具的整体架构和设计。

关于

作者:Alexander Gusev

版本:0.1.0

依赖项

~8–21MB
~331K SLoC