feat: refactor to multi-protocol event streaming system

Major architectural refactor, upgrading from simple logging system to comprehensive multi-protocol Solana DEX event streaming system:

 New Features:
- Support for 5 DEX protocols: PumpFun, PumpSwap, Bonk, Raydium CPMM, Raydium CLMM
- Implement unified event interface (UnifiedEvent trait) and event factory pattern
- Add dual streaming support: Yellowstone gRPC and ShredStream
- Add Chinese documentation (README_CN.md)

🏗️ Architectural Improvements:
- Refactor event parsing system with modular design
- Implement protocol-specific parsers and event types
- Optimize dependency management, update Cargo.toml
- Remove legacy logging modules, clean up redundant code

📊 Statistics:
- Added 46 files, 4511 lines of code
- Removed 1381 lines of legacy code
- Net addition of 3130 lines of code

Tech Stack:
- Rust async/await for asynchronous processing
- Protocol Buffers support
- Multi-protocol event parsing
- High-performance event stream subscription
This commit is contained in:
ysq
2025-07-19 23:46:42 +08:00
parent a7c9721877
commit 9e34a01874
46 changed files with 4511 additions and 1381 deletions
+8 -39
View File
@@ -1,12 +1,12 @@
[package]
name = "grpc-parsed"
version = "2.4.3"
name = "solana-streamer"
version = "0.1.0"
edition = "2021"
authors = []
repository = ""
description = "Rust SDK to interact with the Pump.fun Solana program."
authors = ["William <byteblock6@gmail.com>", "sgxiang <sgxiang@gmail.com>", "wei <1415121722@qq.com>"]
repository = "https://github.com/0xfnzero/solana-streamer"
description = "A lightweight Rust library for real-time event streaming from Solana DEX trading programs. Supports PumpFun, PumpSwap, Bonk, and Raydium protocols with Yellowstone gRPC and ShredStream."
license = "MIT"
keywords = ["solana", "memecoins", "pumpfun", "grpc-parsed", "pumpbot"]
keywords = ["solana", "streaming", "events", "grpc", "shredstream"]
readme = "README.md"
[lib]
@@ -21,18 +21,12 @@ solana-rpc-client-api = "2.1.16"
solana-transaction-status = "2.1.16"
solana-account-decoder = "2.1.16"
solana-hash = "2.1.16"
solana-security-txt = "1.1.1"
solana-entry = "2.1.16"
solana-rpc-client-nonce-utils = "2.1.16"
solana-perf = "2.1.16"
spl-token = "8.0.0"
spl-token-2022 = { version = "8.0.0", features = ["no-entrypoint"] }
solana-metrics = "2.1.16"
spl-associated-token-account = "6.0.0"
mpl-token-metadata = "5.1.0"
borsh = { version = "1.5.3", features = ["derive"] }
isahc = "1.7.2"
serde = { version = "1.0.215", features = ["derive"] }
serde_json = "1.0.134"
futures = "0.3.31"
@@ -44,16 +38,11 @@ bincode = "1.3.3"
anyhow = "1.0.90"
yellowstone-grpc-client = { version = "6.0.0" }
yellowstone-grpc-proto = { version = "6.0.0" }
reqwest = { version = "0.12.12", features = ["json", "multipart"] }
tokio = { version = "1.42.0" , features = ["full", "rt-multi-thread"]}
tonic = { version = "0.12.3", features = ["tls", "tls-roots", "tls-webpki-roots"] }
rustls = { version = "0.23.23", features = ["ring"] }
rustls-native-certs = "0.8.1"
tokio-rustls = "0.26.1"
core_affinity = "0.8"
dotenvy = "0.15.7"
pretty_env_logger = "0.5.0"
log = "0.4.22"
chrono = "0.4.39"
regex = "1"
@@ -64,31 +53,11 @@ lazy_static = "1.5.0"
once_cell = "1.20.3"
prost = "0.13.5"
prost-types = "0.13.5"
arrform = { git = "https://github.com/raydium-io/arrform" }
num_enum = "0.7.3"
num-derive = "0.4.2"
num-traits = "0.2.19"
uint = "0.10.0"
clap = { version = "4.5.31", features = ["derive"] }
hex = "0.4.3"
bytemuck = { version = "1.4.0" }
safe-transmute = "0.11.0"
enumflags2 = "0.6.4"
static_assertions = "1.1.0"
demand = "1.2.2"
arrayref = "0.3.6"
default-env = "0.1.1"
borsh-derive = "1.5.5"
axum = { version = "0.8.1", features = ["macros"] }
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
tokio-tungstenite = { version = "0.26.1", features = ["native-tls"] }
indicatif = "0.17.11"
toml = "0.8.20"
pumpfun = "4.2.0"
indicatif = "0.17.11"