Seq and its associated apps and tooling are made possible by many excellent tools, libraries, and frameworks built by others.
|Language or platform
|.NET Core is the lightweight, cross-platform runtime on which the Seq server is built. Read more about how we use .NET Core.
|Autofac manages the lifetime of components that implement the Seq API, background task system, and other dynamic composition scenarios.
|The Seq UI is built from AngularJS components.
|Babel makes it possible for us to use cutting-edge ECMAScript features while targeting most browsers in current use.
|Compact binary serialization for on-disk metadata files.
|Seq's signal indexes use
bit-vec for logical operations.
|When we wrangle bytes, we wrangle them with this.
|Used for endian-aware byte encoding throughout Seq's native storage engine.
|The fast and beautiful Seq query syntax highlighting is implemented on CodeMirror.
|Sane and streamlined Rust error handling.
|Useful for cross-platform file locking APIs.
|JSON.NET is our go-to JSON parser, used throughout the Seq .NET codebase.
|Essential for non-constant static data in Rust programs.
|Cross-platform Rust/C standard library bindings.
|Lightning.NET is a friendly .NET wrapper for LMDB.
|LMDB is a fast, flexible, and very reliable key-value store. On Linux, we use LMDB to store Seq's configuration data. On Windows, a (now-deprecated) LMDB storage option was implemented prior to the introduction of Flare Native Storage.
|ManagedEsent is a high-quality .NET wrapper for ESENT.
|Cross-platform memory mapped files: we use this throughout Seq's storage engine.
|Modern UI Icons
|Many of the icons in the Seq user interface are based on, or inspired by, icons from this set.
@EventType is generated by this great implementation of the Murmur3 hash algorithm.
|Great alternative synchronization primitives for Rust.
|We love these neat, compact scrollbars, and use them throughout the Seq UI.
|The Seq UI's date pickers are built upon this library.
|We use Plotly.js to generate ad-hoc and dashboard charts.
|SemVer helps us parse version numbers from NuGet package feeds
|Serialization used throughout our Rust codebase.
|Seq internally uses Serilog for diagnostics and telemetry. Structured logging FTW ;-)
|Seq's native storage engine uses this crate for Snappy compression on Linux and Windows.
|Snappy for Windows and CRC-32C for .NET
|On Windows, the ESENT-based storage implementation compresses all data using Snappy compression.
|The Seq filter expression language is parsed using Sprache.
|SQL-style queries are parsed using Superpower.
|The Seq HTTP API uses URI templates throughout, processed using this great library.
|URI Template JS
|On the client-side, URI template interactions are through this handy implementation.
|UUIDs, for Rust.
|Windows API bindings.
Updated about 4 years ago