6 releases (breaking)

Uses new Rust 2024

0.6.0-alpha.0 Dec 1, 2025
0.5.1 Sep 29, 2025
0.4.0 Jul 24, 2025
0.3.0 May 6, 2025
0.1.0 Feb 28, 2025

#107 in #account

Download history 164/week @ 2025-09-25 197/week @ 2025-10-02 66/week @ 2025-10-09 14/week @ 2025-10-16 2/week @ 2025-10-23 12/week @ 2025-10-30 4/week @ 2025-11-06 8/week @ 2025-11-13 2/week @ 2025-12-11 7/week @ 2025-12-18 99/week @ 2026-01-08

108 downloads per month
Used in 2 crates

MIT license

77KB
1K SLoC

Yellowstone Vixen Parser

This crate provides several account parsers, such as Token and TokenExtension. These parsers can be imported from this crate and used within yellowstone-vixen.

Installation


cargo add yellowstone-vixen-parser

Example


use std::path::PathBuf;

use clap::Parser as _;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
use yellowstone_vixen::{self as vixen, Pipeline};
use yellowstone_vixen_parser::{
    token_extension_program::{
        AccountParser as TokenExtensionProgramAccParser,
        InstructionParser as TokenExtensionProgramIxParser,
    },
    token_program::{
        AccountParser as TokenProgramAccParser, InstructionParser as TokenProgramIxParser,
    },
};

fn main() {
    tracing_subscriber::registry()
        .with(tracing_subscriber::EnvFilter::from_default_env())
        .with(tracing_subscriber::fmt::layer())
        .init();

    let Opts { config } = Opts::parse();
    let config = std::fs::read_to_string(config).expect("Error reading config file");
    let config = toml::from_str(&config).expect("Error parsing config");

    vixen::Runtime::builder()
        .account(Pipeline::new(TokenExtensionProgramAccParser, [Handler]))
        .account(Pipeline::new(TokenProgramAccParser, [Handler]))
        .instruction(Pipeline::new(TokenExtensionProgramIxParser, [Handler]))
        .instruction(Pipeline::new(TokenProgramIxParser, [Handler]))
        .metrics(vixen::metrics::Prometheus)
        .build(config)
        .run();
}

Dependencies

~5–22MB
~299K SLoC