Skip to content

Latest commit

 

History

History
22 lines (13 loc) · 1.53 KB

README.md

File metadata and controls

22 lines (13 loc) · 1.53 KB

This module implements an RFC 5424 IETF Syslog Protocol parser in Rust.

CI Documentation crates.io

This tool supports serializing the parsed messages using serde if it's built with the serde-serialize feature.

This library is licensed under the ISC license, a copy of which can be found in LICENSE.txt

The minimum supported Rust version for this library is 1.34.

Performance

On a recent system1, a release build takes approximately 8µs to parse an average message and approximately 300ns to parse the smallest legal message. Debug timings are a bit worse -- about 60µs for an average message and about 8µs for the minimal message. A single-threaded Syslog server should be able to parse at least 100,000 messages/s, as long as you run a separate thread for the parser.

This compares very favorably to python syslog-rfc5424-parser2, which takes about 300µs for a minimal message, and more than 700µs for an average message.

Footnotes

  • 1: An Intel i7-4850HQ in a 2013 rMBP
  • 2: Which I also wrote