market-data-source 0.3.0

High-performance synthetic market data generator with financial precision. Generate unlimited OHLC candles, tick data, and realistic trading scenarios for backtesting and research.
Documentation
# PRP-56: FIX Protocol Message Parser

## Context & Motivation

**Integration Goal**: Parse and generate FIX protocol messages for market data distribution.

**User Requirement**: Support FIX 4.2/4.4 for compatibility with trading systems.

**Technical Challenge**: Implement FIX message parsing, validation, and generation efficiently.

## Requirements

### FIX Components
1. **Message Types**: Quote, Trade, Order Book
2. **Field Parsing**: Tag-value pairs
3. **Session Management**: Sequence numbers
4. **Checksum Validation**: Message integrity

### Message Support
1. **Market Data Request**: Subscribe to data
2. **Market Data Snapshot**: Full book state
3. **Market Data Incremental**: Updates only
4. **Security Definition**: Instrument details

## Implementation Blueprint

### Phase 1: Parser Core
1. Create `src/fix/parser.rs`
2. Implement tag-value parsing
3. Add message validation
4. Create checksum calculation

### Phase 2: Message Types
1. Define market data messages
2. Implement serialization
3. Add deserialization
4. Create message factory

### Phase 3: Session Layer
1. Add sequence tracking
2. Implement heartbeats
3. Create gap fill logic
4. Add resend requests

## Success Criteria

### Validation Gates
```bash
# Test FIX parsing
cargo test fix_parser
cargo test fix_messages

# Validate checksums
cargo test fix_validation
```

### Implementation Metrics
- [ ] Parse all market data messages
- [ ] Checksum validation working
- [ ] Sequence number tracking
- [ ] Round-trip serialization

## Dependencies & References

**FIX Specifications**:
- FIX 4.2/4.4 specifications
- Market data message types
- QuickFIX documentation
- FIX message samples

**Rust Libraries**:
- FerrumFIX (pre-1.0)
- Consider custom implementation
- Use nom for parsing

**Message Structure**:
- Header: BeginString, MsgType, etc.
- Body: Tag-value pairs
- Trailer: Checksum

## Implementation Tasks

### Phase 1: Parser (3-4 hours)
1. Implement parsing
2. Add validation
3. Create types
4. Test parsing

### Phase 2: Messages (2-3 hours)
1. Define messages
2. Add builders
3. Implement serialization
4. Test round-trip

### Phase 3: Session (2-3 hours)
1. Add sequencing
2. Implement heartbeat
3. Create gap fill
4. Document protocol

## Risk Mitigation
- Follow FIX specification exactly
- Validate against QuickFIX
- Handle malformed messages
- Provide FIX dictionary

## Success Score
**6/10** - Well-specified protocol but requires careful implementation of all edge cases.