Platform Support Matrix๏
โ Supported Platforms๏
Primary Platforms (Fully Tested)๏
|----------|โโโโ-|----------|โโโ|-------| | macOS | ARM64 (Apple Silicon) | Clang 14+ | โ SUPPORTED | Native ARM optimizations | | macOS | x86_64 (Intel) | Clang 14+ | โ SUPPORTED | SSE/AVX optimizations | | Linux | x86_64 | GCC 9+, Clang 10+ | โ SUPPORTED | Full SIMD support | | Linux | ARM64 | GCC 9+, Clang 10+ | โ SUPPORTED | NEON optimizations |
Secondary Platforms (Community Tested)๏
|----------|โโโโ-|----------|โโโ|-------| | Windows | x86_64 | MSVC 2019+ | โ ๏ธ EXPERIMENTAL | Limited testing | | Windows | x86_64 | MinGW-w64 | โ ๏ธ EXPERIMENTAL | Community support | | Linux | ARM32 | GCC 9+ | โ ๏ธ EXPERIMENTAL | Basic support |
๐ซ Unsupported Platforms๏
<table border=โ1โ class=โdocutilsโ> <thead> <tr> <th>Platform</th> <th>Reason</th> <th>Alternative</th> </tr> </thead> <tbody> <tr> <td>Windows ARM64</td> <td>Limited toolchain support</td> <td>Use x86_64 with emulation</td> </tr> <tr> <td>32-bit x86</td> <td>Performance limitations</td> <td>Use 64-bit version</td> </tr> <tr> <td>Very old compilers</td> <td>C++17 requirement</td> <td>Upgrade compiler</td> </tr> </tbody> </table>
๐ง Platform-Specific Features๏
SIMD Optimizations๏
x86_64: SSE2, AVX2, AVX-512 (when available)
ARM64: NEON (when available)
Fallback: Scalar implementations for all platforms
Threading๏
All Platforms: C++11 std::thread support
Linux: pthread optimizations
macOS: Grand Central Dispatch integration (planned)
Windows: Windows threading APIs (experimental)
Networking๏
All Platforms: Boost.Asio for cross-platform networking
Linux: epoll optimizations
macOS: kqueue optimizations
Windows: IOCP support (experimental)
๐ Requirements by Platform๏
macOS๏
# Required * macOS 10.15+ (Catalina) * Xcode 12+ or Command Line Tools * CMake 3.14+
# Dependencies brew install cmake boost quickfix pkg-config
# Optional (for performance) brew install intel-tbb google-benchmark
Linux (Ubuntu/Debian)๏
# Required * Ubuntu 20.04+ / Debian 11+ * GCC 9+ or Clang 10+ * CMake 3.14+
# Dependencies sudo apt install build-essential cmake pkg-config
libboost-all-dev libquickfix-dev
# Optional sudo apt install libtbb-dev libbenchmark-dev
Linux (CentOS/RHEL/Fedora)๏
# Required * CentOS 8+ / RHEL 8+ / Fedora 32+ * GCC 9+ or Clang 10+ * CMake 3.14+
# Dependencies (CentOS/RHEL) sudo yum install gcc-c++ cmake pkgconfig boost-devel
# Dependencies (Fedora) sudo dnf install gcc-c++ cmake pkgconfig boost-devel
Windows (Experimental)๏
# Required * Windows 10 version 1903+ * Visual Studio 2019+ or Build Tools * CMake 3.14+
# Using vcpkg (recommended) vcpkg install boost:x64-windows quickfix:x64-windows
# Using Conan conan install . โbuild=missing
๐งช Testing Status๏
Automated Testing๏
โ macOS ARM64: GitHub Actions
โ macOS x86_64: GitHub Actions
โ Linux x86_64: GitHub Actions
โ ๏ธ Linux ARM64: Manual testing
โ Windows: Not automated yet
Performance Benchmarks๏
โ macOS ARM64: Native NEON optimizations
โ macOS x86_64: SSE/AVX optimizations
โ Linux x86_64: Full SIMD support
โ ๏ธ Other platforms: Basic benchmarks only
๐ Known Issues๏
macOS๏
Issue: Homebrew QuickFIX may have linking issues
Workaround: Build from source or use git submodule
Status: Tracked in issue #123
Linux ARM64๏
Issue: Some NEON intrinsics may not be available on older kernels
Workaround: Automatic fallback to scalar code
Status: Minor performance impact
Windows๏
Issue: Limited testing and potential compatibility issues
Workaround: Use WSL2 with Linux build
Status: Community contributions welcome
๐ Performance Characteristics๏
Latency (microseconds, lower is better)๏
|----------|โโโโ-|---------------|โโโโโ|-------| | macOS | ARM64 | 0.8ฮผs | 1.2ฮผs | 2.0ฮผs | | macOS | x86_64 | 0.6ฮผs | 1.0ฮผs | 1.6ฮผs | | Linux | x86_64 | 0.5ฮผs | 0.9ฮผs | 1.4ฮผs | | Linux | ARM64 | 0.9ฮผs | 1.3ฮผs | 2.2ฮผs |
Throughput (messages/second, higher is better)๏
|----------|โโโโ-|---------------|โโโโโ| | macOS | ARM64 | 800K | 2.5M | | macOS | x86_64 | 1.2M | 4.0M | | Linux | x86_64 | 1.5M | 5.0M | | Linux | ARM64 | 700K | 2.2M |
Benchmarks run on representative hardware with optimized builds
๐ฎ Future Platform Support๏
Planned๏
Windows ARM64: When toolchain matures
FreeBSD: Community interest
WebAssembly: For browser-based tools
Under Consideration๏
Android: For mobile trading apps
iOS: For mobile trading apps
Embedded Linux: For hardware trading boxes
๐ Platform-Specific Help๏
Getting Help๏
Check this document for known issues
Search GitHub Issues for platform-specific problems
Create new issue with platform details: - OS version and architecture - Compiler version - CMake version - Full error output
Contributing Platform Support๏
Test on your platform and report results
Submit fixes for platform-specific issues
Add CI/CD for new platforms
Update documentation with your findings
๐ Platform Detection๏
The build system automatically detects your platform:
// Platform detection in code #if PLATFORM_MACOS
// macOS-specific code
- #elif PLATFORM_LINUX
// Linux-specific code
- #elif PLATFORM_WINDOWS
// Windows-specific code
#endif
// Architecture detection #if ARCH_ARM64
// ARM64-specific optimizations
- #elif ARCH_X86_64
// x86_64-specific optimizations
#endif
Build system will show detected platform:
โ FIX-FastTrade Configuration Summary: โ Platform: macOS ARM64 โ Compiler: Clang 17.0.0 โ SIMD Support: NEON โ Threading: std::thread + pthread