CryptoStream is a real-time cryptocurrency price monitoring and event-based processing system.
It collects and processes market data from multiple exchanges using Go and an event-driven architecture.
- Exchange Watchers: Monitor real-time prices from Binance, CoinGecko, and Kraken.
- Event Management: Handle and process crypto-related events.
- Database Management: Store and manage processed crypto data.
- Crypto Stream API: Provide an interface for other applications to consume the data.
crypto-stream/
│── go.mod
│── go.sum
│── cmd/ # Executables
│ ├── binance_watcher/
│ │ ├── main.go
│ ├── coingecko_watcher/
│ │ ├── main.go
│ ├── kraken_watcher/
│ │ ├── main.go
│ ├── event_mng/
│ │ ├── main.go
│ ├── crypto_stream/
│ │ ├── main.go
│── internal/ # Shared libraries
│ ├── crypto_stream/
│ │ ├── api.go
│ │ ├── client.go
│ │ ├── models.go
│── README.md
│── LICENSE
Ensure you have Go installed:
go version
If not, install it from Go's official website.
Clone this repository:
git clone https://github.com/yourusername/crypto-stream.git
cd crypto-stream
Download dependencies:
go mod tidy
Each watcher is a separate executable. To run one, use:
go run cmd/binance_watcher/main.go
To build and run:
go build -o bin/binance_watcher cmd/binance_watcher/main.go
./bin/binance_watcher
To run all services at once:
go run cmd/binance_watcher/main.go &
go run cmd/coingecko_watcher/main.go &
go run cmd/kraken_watcher/main.go &
go run cmd/event_mng/main.go &
go run cmd/crypto_stream/main.go &
Set environment variables before running:
export BINANCE_API_KEY="your_api_key"
export BINANCE_API_SECRET="your_api_secret"
Or use a .env
file.
- Fork the repo
- Create a new branch (
feature-xyz
) - Commit changes
- Open a pull request
This project is licensed under the MIT License – see the LICENSE file for details.