Skip to content

Conversation

@Soroushsrd
Copy link

@Soroushsrd Soroushsrd commented Jun 7, 2025

This PR starts the gradual replacement of quickfix-ffi with quickfix-native as discussed in #21.

What's included:

  • βœ… Pure Rust Dictionary implementation
  • βœ… Matches C++ QuickFIX API exactly
  • βœ… Error handling with NativeError
  • βœ… Type-safe key-value operations (string, int, double, bool, day-of-week)

Next steps:

  • Full test coverage for implemented changes
  • SessionID implementation
  • Message/Header/Trailer types
  • ...

- Implement SessionID struct with field types
- Add BeginString, SenderCompID, TargetCompID fields
- Support parsing from string format
(BeginString:Sender->Target[:Qualifier])
- Include unit tests
- Add Display and TryFrom traits
@Soroushsrd
Copy link
Author

Latest Update: SessionID Implementation βœ…

Added pure Rust SessionID with:

  • String parsing matching C++ fromString() logic
  • Basic field types (BeginString, SenderCompID, TargetCompID)
  • Test coverage
  • Idiomatic Rust traits (Display, TryFrom)

What's included so far:

βœ… Pure Rust Dictionary implementation
βœ… SessionID implementation
βœ… Basic field types
βœ… Error handling with NativeError
βœ… Type-safe operations matching C++ API

Working on next:

  • More field types as needed
  • Message/Header/Trailer types
  • Coverage improvements

- Implement MessageOrder with header/trailer/group field ordering - Add FieldMap
with complete field management and group support - Create Group structure for
repeating field groups - Add type-safe field operations and FIX serialization
@Soroushsrd
Copy link
Author

Changes Made

Core Message Infrastructure

  • βœ… MessageOrder for proper FIX field ordering
  • βœ… FieldMap for field storage and management
  • βœ… Group support for repeating field groups

Next Steps

  • Message, Header, Trailer implementations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant