maciejhirsz/logos

Create ridiculously fast Lexers

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 1 hour ago
Added to GitGenius on September 19th, 2026
Created on November 9th, 2018
Open Issues & Pull Requests: 90 (+0)
GitHub issues: Enabled
Number of forks: 165
Total Stargazers: 3,563 (+0)
Total Subscribers: 18 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 12.2 hours
Mean response time: 119.4 days
90th percentile: 203.2 days
Tracked items: 125

Most active contributors

Sign in to see contributor activity.

How this project is maintained

96% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "question" is answered fastest, typically in about 12 hours, while "enhancement" waits about 5 days. Three people close 85% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 54
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 787 days
Stale 30+ days: 52
Stale 90+ days: 46

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (63)
  • question (29)
  • enhancement (13)
  • help wanted (11)
  • good first issue (9)
  • book (6)
  • nice to have (5)
  • T-backtracking (4)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Logos is a lexer generator that produces ridiculously fast lexers in Rust.

The problem Logos solves is the need to write lexers that are both simple to define and performant in execution. Rather than requiring hand-written optimization, the tool combines all token definitions into a single deterministic state machine at compile time. It then applies several optimization techniques: converting branches into lookup tables or jump tables, preventing backtracking within token definitions, unwinding loops, and batching reads to minimize bounds checking. All this compilation work happens before runtime, leaving only the optimized lexer for execution.

Logos suits projects where lexing performance matters and you want to avoid the complexity of hand-optimizing a lexer. It is particularly valuable when building parsers or language tools where tokenization speed directly affects overall throughput. The tool is designed for developers working in Rust who need a straightforward way to define tokens through a declarative interface while still achieving performance that would be difficult to match through manual implementation.

The project maintains an active contribution process with a documented release procedure and welcomes bug reports, suggestions, and new features through its issue and pull request channels. A contributing guide is available to help potential contributors understand the codebase and development practices.