[package]
edition = "2021"
rust-version = "1.91"
name = "sol-parser-sdk"
version = "0.7.0"
authors = [
"William <byteblock6@gmail.com>",
"sgxiang <sgxiang@gmail.com>",
"wei <1415121722@qq.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A lightweight Rust library for real-time event streaming from Solana DEX trading programs. Supports PumpFun, PumpSwap, Raydium LaunchLab, and Raydium protocols with Yellowstone gRPC and ShredStream."
readme = "README.md"
keywords = [
"solana",
"streaming",
"events",
"grpc",
"shredstream",
]
license = "MIT"
repository = "https://github.com/0xfnzero/sol-parser-sdk"
[features]
default = ["parse-borsh"]
parse-borsh = []
parse-zero-copy = []
perf-stats = []
ultra-perf = []
[lib]
name = "sol_parser_sdk"
crate-type = ["rlib"]
path = "src/lib.rs"
[[example]]
name = "debug_pump_tx"
path = "examples/debug_pump_tx.rs"
[[example]]
name = "debug_pumpswap_tx"
path = "examples/debug_pumpswap_tx.rs"
[[example]]
name = "dynamic_subscription"
path = "examples/dynamic_subscription.rs"
[[example]]
name = "grpc_latency_slot_compare"
path = "examples/grpc_latency_slot_compare.rs"
[[example]]
name = "meteora_damm_grpc"
path = "examples/meteora_damm_grpc.rs"
[[example]]
name = "meteora_damm_new_pool"
path = "examples/meteora_damm_new_pool.rs"
[[example]]
name = "meteora_dbc_token_price"
path = "examples/meteora_dbc_token_price.rs"
[[example]]
name = "mint_all_ata_account_listen"
path = "examples/mint_all_ata_account_listen.rs"
[[example]]
name = "nonce_listen"
path = "examples/nonce_listen.rs"
[[example]]
name = "orca_whirlpool_token_price"
path = "examples/orca_whirlpool_token_price.rs"
[[example]]
name = "parse_meteora_damm_tx"
path = "examples/parse_meteora_damm_tx.rs"
[[example]]
name = "parse_meteora_dlmm_swap"
path = "examples/parse_meteora_dlmm_swap.rs"
[[example]]
name = "parse_meteora_dlmm_swap2"
path = "examples/parse_meteora_dlmm_swap2.rs"
[[example]]
name = "parse_pump_tx"
path = "examples/parse_pump_tx.rs"
[[example]]
name = "parse_pumpfun_quote_cases"
path = "examples/parse_pumpfun_quote_cases.rs"
[[example]]
name = "parse_pumpswap_tx"
path = "examples/parse_pumpswap_tx.rs"
[[example]]
name = "pumpfun_quick_test"
path = "examples/pumpfun_quick_test.rs"
[[example]]
name = "pumpfun_trade_filter"
path = "examples/pumpfun_trade_filter.rs"
[[example]]
name = "pumpfun_trade_filter_ordered"
path = "examples/pumpfun_trade_filter_ordered.rs"
[[example]]
name = "pumpfun_with_metrics"
path = "examples/pumpfun_with_metrics.rs"
[[example]]
name = "pumpswap_low_latency"
path = "examples/pumpswap_low_latency.rs"
[[example]]
name = "pumpswap_ordered"
path = "examples/pumpswap_ordered.rs"
[[example]]
name = "pumpswap_pool_account_listen"
path = "examples/pumpswap_pool_account_listen.rs"
[[example]]
name = "pumpswap_with_metrics"
path = "examples/pumpswap_with_metrics.rs"
[[example]]
name = "raydium_clmm_token_price"
path = "examples/raydium_clmm_token_price.rs"
[[example]]
name = "raydium_cpmm_new_pool"
path = "examples/raydium_cpmm_new_pool.rs"
[[example]]
name = "raydium_launchlab_migration"
path = "examples/raydium_launchlab_migration.rs"
[[example]]
name = "shredstream_example"
path = "examples/shredstream_example.rs"
[[example]]
name = "shredstream_pump_snipe"
path = "examples/shredstream_pump_snipe.rs"
[[example]]
name = "test_account_filling"
path = "examples/test_account_filling.rs"
[[example]]
name = "token_balance_listen"
path = "examples/token_balance_listen.rs"
[[example]]
name = "token_decimals_listen"
path = "examples/token_decimals_listen.rs"
[[example]]
name = "wallet_trade_filter"
path = "examples/wallet_trade_filter.rs"
[[test]]
name = "capture_yellowstone_fixture"
path = "tests/capture_yellowstone_fixture.rs"
[[test]]
name = "current_mainnet_transactions"
path = "tests/current_mainnet_transactions.rs"
[[test]]
name = "live_pumpfun_balances"
path = "tests/live_pumpfun_balances.rs"
[[test]]
name = "yellowstone_transaction_fixture"
path = "tests/yellowstone_transaction_fixture.rs"
[[bench]]
name = "instruction_reject"
path = "benches/instruction_reject.rs"
harness = false
[[bench]]
name = "log_instr_dedup"
path = "benches/log_instr_dedup.rs"
harness = false
required-features = ["perf-stats"]
[[bench]]
name = "micro_batch_buffer"
path = "benches/micro_batch_buffer.rs"
harness = false
[[bench]]
name = "pumpfun_balance_fill"
path = "benches/pumpfun_balance_fill.rs"
harness = false
[[bench]]
name = "pumpfun_create_detection"
path = "benches/pumpfun_create_detection.rs"
harness = false
[[bench]]
name = "rpc_transaction"
path = "benches/rpc_transaction.rs"
harness = false
[[bench]]
name = "shred_entry_decode"
path = "benches/shred_entry_decode.rs"
harness = false
[[bench]]
name = "transaction_cost"
path = "benches/transaction_cost.rs"
harness = false
[[bench]]
name = "yellowstone_transaction"
path = "benches/yellowstone_transaction.rs"
harness = false
[[bench]]
name = "zero_latency_optimizations"
path = "benches/zero_latency_optimizations.rs"
harness = false
[dependencies.anyhow]
version = "1.0.90"
[dependencies.base64]
version = "0.22.1"
[dependencies.base64-simd]
version = "0.8"
[dependencies.borsh]
version = "1.5.3"
features = ["derive"]
[dependencies.bs58]
version = "0.5.1"
[dependencies.chrono]
version = "0.4.39"
[dependencies.crossbeam-queue]
version = "0.3.12"
[dependencies.futures]
version = "0.3.31"
[dependencies.libc]
version = "0.2"
[dependencies.log]
version = "0.4.22"
[dependencies.memchr]
version = "2.7"
[dependencies.once_cell]
version = "1.20.3"
[dependencies.prost]
version = "0.14.3"
[dependencies.rayon]
version = "1.10"
[dependencies.rustls]
version = "0.23.23"
features = ["ring"]
default-features = false
[dependencies.serde]
version = "1.0.215"
features = ["derive"]
[dependencies.serde-big-array]
version = "0.5.1"
[dependencies.smallvec]
version = "1.13"
[dependencies.solana-client]
version = "=4.2.2"
[dependencies.solana-entry]
version = "=4.2.2"
features = ["agave-unstable-api"]
[dependencies.solana-sdk]
version = "=4.0.1"
[dependencies.solana-transaction-error]
version = "=3.3.2"
features = ["wincode"]
[dependencies.solana-transaction-status]
version = "=4.2.2"
features = ["agave-unstable-api"]
[dependencies.spl-pod]
version = "=0.7.2"
[dependencies.spl-token]
version = "9.0.0"
features = ["no-entrypoint"]
default-features = false
[dependencies.spl-token-2022]
version = "11.0.0"
features = ["no-entrypoint"]
default-features = false
[dependencies.tokio]
version = "1.42.0"
features = ["full"]
[dependencies.tonic]
version = "0.14.5"
features = ["transport"]
[dependencies.tonic-prost]
version = "0.14.5"
[dependencies.wide]
version = "0.7"
[dependencies.wincode]
version = "=0.5.5"
[dependencies.yellowstone-grpc-client]
version = "=13.5.0"
[dependencies.yellowstone-grpc-proto]
version = "=12.7.0"
[dev-dependencies.criterion]
version = "0.7.0"
features = ["html_reports"]
[dev-dependencies.serde_json]
version = "1.0.134"
[profile.bench]
opt-level = 3
lto = "thin"
codegen-units = 1
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 16
panic = "abort"
incremental = true
strip = true
[profile.release.package."*"]
opt-level = 3
codegen-units = 1
[profile.ultra-perf]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
overflow-checks = false
incremental = false
inherits = "release"
strip = true