Skip to content

Commit 9530b57

Browse files
committed
readme
Signed-off-by: Lawrence Lane <llane@nvidia.com>
1 parent a9e423a commit 9530b57

3 files changed

Lines changed: 18 additions & 9 deletions

File tree

README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,16 @@ html = highlight("def hello(): print('world')", "python")
1515

1616
---
1717

18-
## Why Rosettes?
18+
## What is Rosettes?
19+
20+
Rosettes is a syntax highlighter for Python 3.14t. Hand-written state machines, O(n) guaranteed, zero ReDoS risk. Safe for untrusted input in web apps and APIs.
21+
22+
**What's good about it:**
1923

2024
- **O(n) guaranteed** — Hand-written state machines, no regex backtracking
2125
- **Zero ReDoS** — No exploitable patterns, safe for untrusted input
2226
- **Thread-safe** — Immutable state, optimized for Python 3.14t free-threading
23-
- **Pygments compatible** — Drop-in CSS class compatibility
27+
- **Pygments compatible** — Drop-in CSS class compatibility for existing themes
2428
- **55 languages** — Python, JavaScript, Rust, Go, and 51 more
2529

2630
---
@@ -220,13 +224,11 @@ All public APIs are thread-safe:
220224

221225
## Performance
222226

223-
Benchmarked against Pygments on a 10,000-line Python file:
227+
On a 10,000-line Python file:
224228

225-
| Operation | Rosettes | Pygments | Speedup |
226-
|-----------|----------|----------|---------|
227-
| Tokenize | 12ms | 45ms | **3.75x** |
228-
| Highlight | 18ms | 52ms | **2.89x** |
229-
| Parallel (8 blocks) | 22ms | 48ms | **2.18x** |
229+
- **Tokenize**~12ms
230+
- **Highlight**~18ms
231+
- **Parallel (8 blocks)**~22ms (1.5–2x speedup on Python 3.14t free-threading)
230232

231233
---
232234

src/rosettes.egg-info/PKG-INFO

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Metadata-Version: 2.4
22
Name: rosettes
3-
Version: 0.1.0
3+
Version: 0.2.0
44
Summary: Modern syntax highlighting for Python 3.14t — O(n) guaranteed, zero ReDoS
55
Author: Bengal Contributors
66
License-Expression: MIT

src/rosettes.egg-info/SOURCES.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ src/rosettes/lexers/bash_sm.py
2727
src/rosettes/lexers/c_sm.py
2828
src/rosettes/lexers/clojure_sm.py
2929
src/rosettes/lexers/cpp_sm.py
30+
src/rosettes/lexers/csharp_sm.py
3031
src/rosettes/lexers/css_sm.py
3132
src/rosettes/lexers/csv_sm.py
3233
src/rosettes/lexers/cuda_sm.py
@@ -35,13 +36,15 @@ src/rosettes/lexers/dart_sm.py
3536
src/rosettes/lexers/diff_sm.py
3637
src/rosettes/lexers/dockerfile_sm.py
3738
src/rosettes/lexers/elixir_sm.py
39+
src/rosettes/lexers/env_sm.py
3840
src/rosettes/lexers/gleam_sm.py
3941
src/rosettes/lexers/go_sm.py
4042
src/rosettes/lexers/graphql_sm.py
4143
src/rosettes/lexers/groovy_sm.py
4244
src/rosettes/lexers/haskell_sm.py
4345
src/rosettes/lexers/hcl_sm.py
4446
src/rosettes/lexers/html_sm.py
47+
src/rosettes/lexers/http_sm.py
4548
src/rosettes/lexers/ini_sm.py
4649
src/rosettes/lexers/java_sm.py
4750
src/rosettes/lexers/javascript_sm.py
@@ -53,6 +56,7 @@ src/rosettes/lexers/kotlin_sm.py
5356
src/rosettes/lexers/lua_sm.py
5457
src/rosettes/lexers/makefile_sm.py
5558
src/rosettes/lexers/markdown_sm.py
59+
src/rosettes/lexers/merge_sm.py
5660
src/rosettes/lexers/mojo_sm.py
5761
src/rosettes/lexers/nginx_sm.py
5862
src/rosettes/lexers/nim_sm.py
@@ -67,6 +71,7 @@ src/rosettes/lexers/r_sm.py
6771
src/rosettes/lexers/ruby_sm.py
6872
src/rosettes/lexers/rust_sm.py
6973
src/rosettes/lexers/scala_sm.py
74+
src/rosettes/lexers/solidity_sm.py
7075
src/rosettes/lexers/sql_sm.py
7176
src/rosettes/lexers/stan_sm.py
7277
src/rosettes/lexers/swift_sm.py
@@ -79,10 +84,12 @@ src/rosettes/lexers/xml_sm.py
7984
src/rosettes/lexers/yaml_sm.py
8085
src/rosettes/lexers/zig_sm.py
8186
src/rosettes/themes/__init__.py
87+
src/rosettes/themes/_contrast.py
8288
src/rosettes/themes/_mapping.py
8389
src/rosettes/themes/_palette.py
8490
src/rosettes/themes/_roles.py
8591
src/rosettes/themes/palettes/__init__.py
92+
tests/test_content_hash.py
8693
tests/test_parallel.py
8794
tests/test_profiling.py
8895
tests/test_registry.py

0 commit comments

Comments
 (0)