# Version Note
### v1.3.x - plan
#### v1.3.0-plan
1.feat
- unstable: Add optional TLS(based on rustls/tokio-rustls), enable this option to support efficient and secure communication encryption
### v1.2.x - release
#### v1.2.5 - release
1.feat
- Add Prometheus + Grafana monitoring integration
- 17 production-grade metrics (connections, messages, network, system)
- HTTP /metrics endpoint for Prometheus scraping
- /health check endpoint
- Timer helper for automatic duration tracking
- Grafana Dashboard ready-to-use
- Complete documentation (METRICS.md)
- Feature flag: `metrics` (auto-enabled with `server`)
2.perf
- Low overhead monitoring: <1% CPU, ~2-3 MB memory
- Optimized metric recording with atomic operations
#### v1.2.4 - release
1.feat
- Add connection limiter (IP-based and global)
- Add connection rate limiting
- Add configurable TCP parameters
- Add server socket options configuration
2.sec
- IP-level connection limits to prevent resource abuse
- Connection rate limiting to prevent DDoS attacks
#### v1.2.3 - release
1.sec
- Add comprehensive input validation
- Add message length validation (max 10MB)
- Add message format validation
- Add connection limiter (per-IP and total)
- Add rate limiter with sliding window
- Add SafeBuffer to prevent overflow
2.fix
- Prevent memory exhaustion attacks
- Prevent buffer overflow
- Prevent protocol confusion attacks
#### v1.2.2 - release
1.fix
- Add thiserror and anyhow for error handling
- Create unified LynnError type system
- Remove 10+ unwrap() calls
- Add proper error propagation
2.refactor
- Improve error handling across router, client config, server config, and buffer reader
#### v1.2.1 - release
1.fix
- Remove unsafe raw pointer usage in router
- Replace with DashMap for thread-safe hashmap
- Fix memory leak in LynnRouter
- Remove unsafe code blocks
2.perf
- Better concurrent performance with DashMap
### v1.2.x - rc
#### v1.2.0-release
Integrate v1.2.0-rc.1,rc.2
#### v1.2.0-rc.2
Optimize network handling performance(by ai-agent GLM4.6)
Improve server throughput and reliability by:
- Using non-blocking operations for client timeout checks
- Adding adaptive buffering for socket writes
- Implementing better work-stealing algorithm
- Adding adaptive idle waiting to reduce CPU usage
- Fixing various error handling issues
We are testing and using `AI agent-GLM4.6` for the first time to optimize and develop a new version
#### v1.2.0-rc.1
1.perf
- Adding actor model on a small scale to improve the performance of high concurrency distribution
### v1.1.x - release
#### v1.1.17 - release
1.perf
- Optimize the working mode of the router
#### v1.1.16 - release
1.perf
- Replace RwLock<HashMap<K, V>> with DashMap(more convenient and high-performance thread-safe map)
#### v1.1.15 - release
1.perf
- update rust version to 1.88.0
#### v1.1.14 - release
1.perf
- Optimize memory usage
- Remove unused code
#### v1.1.13 - release
1.doc
- Add and Update doc
#### v1.1.12 - release
1.perf
- Change the original task listening of each socket to a reactor model to reduce memory usage. This modification optimizes three channels layer and 50% of the memory overhead compared to the previous version(In actual testing, the throughput per second increased by about 20% compared to version v1.1.11, and by about 50% compared to other versions earlier than v1.1.11)
- Simplify code(Abandoned and deleted the original thread_pool,removed some other redundant code)
2.doc
- Add and Update doc
#### v1.1.11 - release
1.perf
- Update thread pool load balancing method, switch from simple rotation training to job stealing algorithm (In actual testing, the throughput per second increased by about 20%)
#### v1.1.10 - release
1.perf
- update rust version to 1.87.0
#### v1.1.9 - release
1.fix
- lifecycle management(The previous lifecycle management was disrupted during the upgrade from v1.1.3 to v1.1.4, so we discontinued v1.1.4 to v1.1.8 and fixed the issue in v1.1.9. Currently, Rust still manages most of the lifecycle automatically, and we only manually closed some critical nodes)
#### v1.1.8 - release
1.perf
- logserver(Server and Clinet) Now users need to manually initialize the logs
#### v1.1.7 - release
1.feat
- Supports IPv4 and IPv6 (Server and Client)
#### v1.1.6 - release
1.perf
- Delete useless code
- Update channel_stize=>64
#### v1.1.5 - release
1.perf
- Big-Endian=>Little-Endian(Use popular architectures (x86/x64, ARM) for Little-Endian instead of using network standard Big-Endian to achieve performance improvements)
#### v1.1.4 - release
1.fix
- While=>Loop
#### v1.1.3 - release
1.fix
- Heartbeat update mechanism:Under the previous heartbeat update mechanism, msg that did not match the tag would also be treated as the correct client. Now, only standard heartbeats are received to update the heartbeat, otherwise the client will be removed in the next heartbeat detection
#### v1.1.2 - release
1.fix
- Link management(DELAYED SEND)
- Log output adjustment
2.docs
- Supplement and modify doc
#### v1.1.1 - release
1.perf
- Overall performance optimization
2.fix
- Fix `LynnConfigBuilder` failed to export correctly
3.refactor
- Structural optimization and adjustment mainly focus on code readability and maintainability
4.docs
- Improve the crate documentation
5.redundancy
- Delete abandoned code
#### v1.1.0 - release
1.feat
- Support asynchronous function tasks with different parameter routing
### v1.0.x - release
#### v1.0.3 - release
1.fix
- verified sticky package bug
#### v1.0.2 - release
1.fix
- Several known bugs
#### v1.0.1 - release
1.docs
- Improve documentation
#### v1.0.0 - release
1.feat
- Tcp server
- Tcp client
- Custom message parsing
- Automatically clean sockets
- Routing service for synchronous tasks