Bug

  • [CPP-5028] - Acceptor in FlatMessage mode delivers a corrupted message when the first Logon and the next message arrive in one TCP read
  • [CPP-5020] - Session::flushSessionStorage(true) does not synchronize the session state file
  • [CPP-4996] - Reentrant send during batch preparation breaks wire order
  • [CPP-4989] - The LinkError can be dropped on certain conditions
  • [CPP-4981] - The sequence gap is not detected and processed for malformed incoming messages
  • [CPP-4974] - Possible access violation when a bad message is received and the Pluggable session storage is used
  • [CPP-4937] - Possible data race in AsyncFileBasedStorage
  • [CPP-4845] - The ResendRequest processing is not stopped when the Session::resendingBatchSize(..) is used and the FIX connection is closed

Improvement

  • [CPP-5021] - The FlatMessage::begin() should return an iterator on the actual first field
  • [CPP-4985] - Add Session::listenNetworkInterfaceAndPort()
  • [CPP-4976] - Support splitting acceptor sessions processing by different stacks in separate threads by local network interfaces
  • [CPP-4910] - Support macOS
  • [CPP-4904] - Add more details about "Dispatching Network Events" in the ExternalThread Mode
  • [CPP-4894] - Add an ability to Timestamp class to parse timestamp string without the specified format
  • [CPP-4893] - Add an ability to validate session-level fields to the Message class
  • [CPP-4887] - Add "Using Onload with the ExternalThread mode" article
  • [CPP-4884] - Message.toJson() should consider the presence of JSON symbols inside tag values
  • [CPP-4862] - Add a note that sessions with SSL encryption always use the DedicatedThreads threading model
  • [CPP-4850] - Support the MONTHYEAR type validation
  • [CPP-4841] - Add an optional sessionRejectReason parameter to the Session::sendReject(..) method
  • [CPP-4808] - Improve messaging iterator classes
  • [CPP-4777] - Prevent enabling both Session::requestOnlyMissedMessages and Session::reportNewMessagesWhileWaitingForMissedMessages
  • [CPP-4769] - Reject Logon messages received in the Established state without ResetSeqNumFlag and NextExpectedMsgSeqNum
  • [CPP-3473] - Add an ability to load scheduler settings from the XML config file

Task

  • [CPP-4992] - Add EP312 to the Engine
  • [CPP-4767] - Remove 'CME specific settings' from docs

New Feature

  • [CPP-4959] - Support Visual Studio 2026
  • [CPP-4870] - Add Dictionary::fieldType(Tag tag)
  • [CPP-4797] - Add FlatMessage::toString(char delimeter)
  • [CPP-4781] - The TypedMessagesGenerator ability to generate a namespace with tags from the given dictionary