syslog_rfc5424 0.4.1

Parser for RFC5424 (IETF-format) syslog messages
Documentation

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

Build Status Documentation crates.io

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

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