anixe
doku
Rust

fn(Code) -> Docs

Last updated Jun 8, 2026
87
Stars
4
Forks
3
Issues
0
Stars/day
Attention Score
10
Language breakdown
No language data available.
โ–ธ Files click to expand
README

Doku   [![crates-badge]][crates-link] [![docs-badge]][docs-link]

[crates-badge]: https://img.shields.io/crates/v/doku.svg [crates-link]: https://crates.io/crates/doku [docs-badge]: https://img.shields.io/badge/docs.rs-latest-informational [docs-link]: https://docs.rs/doku

Doku is a framework for documenting Rust data structures - it allows to generate aesthetic, human-friendly descriptions of configuration types, requests / responses, and so on.

Say goodbye to stale, hand-written documentation - with Doku, code is the documentation!

Example

[dependencies]
doku = "0.21"
use doku::Document;
use serde::Deserialize;

#[derive(Deserialize, Document)] struct Config { /// Database's engine db_engine: DbEngine,

/// Database's host #[doku(example = "localhost")] db_host: String,

/// Database's port #[doku(example = "5432")] db_port: usize, }

#[derive(Deserialize, Document)] enum DbEngine { #[serde(rename = "pgsql")] PostgreSQL,

#[serde(rename = "mysql")] MySQL, }

fn main() { println!("

json"); println!("{}", doku::to_json::()); println!("
");     println!();     println!("
toml"); println!("{}", doku::to_toml::()); println!("
"); }

{
  // Database's engine
  "db_engine": "pgsql" | "mysql",
  // Database's host
  "db_host": "localhost",
  // Database's port
  "db_port": 5432
}
# Database's engine
db_engine = "pgsql" | "mysql"

Database's host

db_host = "localhost"

Database's port

db_port = 5432

You'll find more examples in ./doku/examples; there's also a documentation at .

Contributing

Found a bug, have an idea? Please let us know on GitHub - patches are welcome, too!

If you want to try hacking on Doku, the entry points are:

There are also integration tests at ./doku/tests.

License

Licensed under the MIT license.

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท anixe/doku ยท Updated daily from GitHub