diff --git a/.cursorrules b/.cursorrules index 81a52d79..87105174 100644 --- a/.cursorrules +++ b/.cursorrules @@ -194,6 +194,38 @@ mod tests { - Each test should have a clear purpose and verify specific behavior - Test data should be realistic and representative of actual use cases +## Cross-Platform Compatibility Guidelines + +### 1. CPU Architecture Compatibility +- **Always consider multi-platform and different CPU architecture compatibility** when writing code +- Support major architectures: x86_64, aarch64 (ARM64), and other target platforms +- Use conditional compilation for architecture-specific code: +```rust +#[cfg(target_arch = "x86_64")] +fn optimized_x86_64_function() { /* x86_64 specific implementation */ } + +#[cfg(target_arch = "aarch64")] +fn optimized_aarch64_function() { /* ARM64 specific implementation */ } + +#[cfg(not(any(target_arch = "x86_64", target_arch = "aarch64")))] +fn generic_function() { /* Generic fallback implementation */ } +``` + +### 2. Platform-Specific Dependencies +- Use feature flags for platform-specific dependencies +- Provide fallback implementations for unsupported platforms +- Test on multiple architectures in CI/CD pipeline + +### 3. Endianness Considerations +- Use explicit byte order conversion when dealing with binary data +- Prefer `to_le_bytes()`, `from_le_bytes()` for consistent little-endian format +- Use `byteorder` crate for complex binary format handling + +### 4. SIMD and Performance Optimizations +- Use portable SIMD libraries like `wide` or `packed_simd` +- Provide fallback implementations for non-SIMD architectures +- Use runtime feature detection when appropriate + ## Security Guidelines ### 1. Memory Safety @@ -275,12 +307,18 @@ async fn health_check() -> Result { - [ ] Are there appropriate permission checks? - [ ] Is information leakage avoided? -### 4. Maintainability +### 4. Cross-Platform Compatibility +- [ ] Does the code work on different CPU architectures (x86_64, aarch64)? +- [ ] Are platform-specific features properly gated with conditional compilation? +- [ ] Is byte order handling correct for binary data? +- [ ] Are there appropriate fallback implementations for unsupported platforms? + +### 5. Maintainability - [ ] Is the code clear and understandable? - [ ] Does it follow the project's architectural patterns? - [ ] Is there appropriate documentation? -### 5. Code Commits +### 6. Code Commits - [ ] Does it comply with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)? - [ ] Commit titles should be concise and in English, avoid Chinese