streamdown-parser

Crates.iostreamdown-parser
lib.rsstreamdown-parser
version0.1.3
created_at2025-12-31 20:22:23.941617+00
updated_at2025-12-31 21:04:33.047613+00
descriptionStreaming markdown parser for streamdown
homepage
repositoryhttps://github.com/fed-stew/streamdown-rs
max_upload_size
id2015292
size85,814
(janfeddersen-wq)

documentation

README

streamdown-parser

Streaming markdown parser for the streamdown terminal renderer.

Overview

A line-oriented streaming markdown parser designed for real-time rendering:

  • Streaming design - Parses line-by-line as content arrives
  • LLM-friendly - Handles partial/incomplete markdown gracefully
  • Full CommonMark support - Headings, code blocks, lists, tables, etc.
  • Think blocks - Special <think> tag support for LLM output

Usage

[dependencies]
streamdown-parser = "0.1"
use streamdown_parser::Parser;

let mut parser = Parser::new();

for line in markdown.lines() {
    for event in parser.parse_line(line) {
        // Handle parsing events
        match event {
            Event::Heading { level, text } => { /* ... */ }
            Event::CodeBlock { language, code } => { /* ... */ }
            // ...
        }
    }
}

Features

  • Headings (ATX style)
  • Fenced code blocks with language detection
  • Ordered and unordered lists (nested)
  • Tables with alignment
  • Blockquotes
  • Inline formatting (bold, italic, code, links)
  • Think blocks for LLM reasoning

Part of Streamdown

This is a component of streamdown-rs, a streaming markdown renderer for modern terminals.

License

MIT

Commit count: 0

cargo fmt