Crates.io | marktwin |
lib.rs | marktwin |
version | 0.5.0 |
source | src |
created_at | 2021-10-18 15:05:57.632875 |
updated_at | 2023-12-03 20:34:47.227421 |
description | Marktwin format support for Eternaltwin. |
homepage | https://gitlab.com/eternal-twin/marktwin |
repository | https://gitlab.com/eternal-twin/marktwin |
max_upload_size | |
id | 466819 |
size | 80,882 |
This library implements the Marktwin (mkt) parser used by Eternal-Twin. Marktwin is the format used by Eternal-Twin for its messages. It is inspired by Markdown and the Twinoid forum code. See the Marktwin library for more details.
The parser is implemented using Rust and compiled to Wasm. It is compatible with both Node and webpack.
All inputs produce valid parse trees, parsing cannot fail.
The parser uses a pipeline to gradually transform the input into a tree.
The Rust implementation supports fuzzing:
# Make sure that you have `cargo-fuzz`
cargo install cargo-fuzz
# Fuzz the `lexer`
cargo fuzz run lexer
# Fuzz the `parser`
cargo fuzz run parser