用途:Pinocchio 是 Anza 维护的极简 Rust 库,用于在不依赖重量级 solana-program crate 的情况下编写 Solana 程序。它把交易数据视为单一字节切片,通过零拷贝方式原地读取。
主要能力:提供入口宏、账户校验、PDA 派生、CPI(系统程序、Token 程序及自定义程序)、零拷贝数据序列化(bytemuck)与手动解析等。附带 pinocchio-system 与 pinocchio-token 作为 CPI 辅助库,并可用 Shank 生成 IDL。
使用方式:Cargo 依赖可写 pinocchio = "0.10"、pinocchio-system = "0.4"、pinocchio-token = "0.4",配合 bytemuck。通过 entrypoint!、lazy_entrypoint! 或配合 no_allocator! 使用。账户校验可采用 TryFrom、Builder 或宏模式;CPI 使用 invoke/invoke_signed;PDA 用 find_program_address 或 create_program_address。IDL 用 shank idl -o idl.json -p src/lib.rs 生成。
适用场景:高吞吐程序(DEX、订单簿、游戏)、CU 为瓶颈、二进制体积重要、需要最大内存控制,以及代币、金库、托管等基础设施。若为快速原型、团队不熟悉底层 Rust、账户关系复杂或需大量生态工具,官方建议考虑 Anchor。
限制:Pinocchio 尚未审计,生产使用需谨慎;当前版本 0.10.x;Token-2022 支持仍在开发中。资料未提供收费、价格或具体平台要求等信息。