{"id":13478044,"url":"https://github.com/coastalwhite/wavedrom-rs","last_synced_at":"2025-04-05T04:10:28.693Z","repository":{"id":176272655,"uuid":"631390447","full_name":"coastalwhite/wavedrom-rs","owner":"coastalwhite","description":"Beautiful Digital Timing Diagrams with Rust","archived":false,"fork":false,"pushed_at":"2024-12-21T15:36:05.000Z","size":1520,"stargazers_count":79,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T03:09:34.518Z","etag":null,"topics":["diagrams","digital","logic","svg","timing","wasm","wavedrom","waveform"],"latest_commit_sha":null,"homepage":"https://coastalwhite.github.io/wavedrom-rs","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coastalwhite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-22T21:51:42.000Z","updated_at":"2025-03-20T01:03:04.000Z","dependencies_parsed_at":"2024-01-16T06:18:27.014Z","dependency_job_id":"4727d28a-2fbf-4064-adeb-b3d49b37f3d9","html_url":"https://github.com/coastalwhite/wavedrom-rs","commit_stats":null,"previous_names":["coastalwhite/wavedrom-rs"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coastalwhite%2Fwavedrom-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coastalwhite%2Fwavedrom-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coastalwhite%2Fwavedrom-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coastalwhite%2Fwavedrom-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coastalwhite","download_url":"https://codeload.github.com/coastalwhite/wavedrom-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284949,"owners_count":20913704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diagrams","digital","logic","svg","timing","wasm","wavedrom","waveform"],"created_at":"2024-07-31T16:01:51.705Z","updated_at":"2025-04-05T04:10:28.658Z","avatar_url":"https://github.com/coastalwhite.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003ccenter\u003e\n    \u003ch1\u003ewavedrom-rs \u003cimg style=\"width: 1em; height: 1em;\" alt=\"signal\" src=\"./assets/wave.svg\" /\u003e\u003c/h1\u003e\n    \u003ch3\u003eA Rust \u003cb\u003eDigital Timing Diagram\u003c/b\u003e generator based on \u003ca href=\"https://wavedrom.com/\"\u003eWaveDrom\u003c/a\u003e\u003c/h3\u003e\n\u003c/center\u003e\n\n---\n\n[Demo][demo] | [Tutorial][book]\n\nThe `wavedrom-rs` crate provides an interface to shape beautiful [Digital Timing\nDiagrams][dtd] into an [SVG][svg]. It is almost completely compatible with the\n[WaveDrom][wavedrom-js] project. It can be merged into document build tools,\ncontinuous integration or be used as a one off to generate beautiful\ndiagrams.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./assets/banner.gif\" alt=\"Banner Image\" /\u003e\n\u003c/p\u003e\n\nThere are currently four ways to use `wavedrom-rs`:\n\n- [On the editor website][demo]\n- [As a Rust crate][cratesio]\n- [As a Command-Line Application][cli]\n- [As a MdBook Preprocessor][mdbook-wavedrom]\n\n## Features\n\n- [x] All original WaveDrom Signal Types\n- [x] Signal Groups\n- [x] Arrows and Indicator Markers\n- [x] Headers and Footers\n- [x] Cycle Enumeration Markers\n- [x] Editor Website through WASM\n- [x] MdBook Preprocessor\n- [x] Full Customization via Skins\n\n## Documentation\n\nThis project uses the same syntax for WaveJson as the original\n[WaveDrom][wavedrom-js] project. Therefore, the original [Hitchhiker's Guide to\nWaveDrom][hitchhiker] is still a good introduction into several concepts of\nof WaveJson. Additionally, this repository maintains a [reference book][book].\n\n## Testing\n\nTests are written in the [`./tests`](./tests) directory and can be generated\nusing the [`./tests/run.py`](./tests/run.py) scripts. This will generate a\n`result.html` in the `tests` directory that contains all the rendered SVGs for\neach `json5` file in the `./tests` directory.\n\n```bash\n# Usage:\ncd ./tests\n./run [path/to/skin.json5]\n```\n\n## Fuzzing\n\nThis project is fuzzed with [`cargo-fuzz`][cargo-fuzz]. This improves the\nstability of the project.\n\n```bash\ncargo +nightly fuzz run wavejson-render\n```\n\n## MSRV\n\nThis crate currently only compiles with Rust 1.70. To select that version use:\n\n```bash\nrustup update 1.70 --no-self-update \u0026\u0026 rustup default 1.70\n```\n\n## Contribution\n\nPlease report any bugs and possible improvements as an issue within this\nrepository. Pull requests are also welcome.\n\n## License\n\nLicensed under a [MIT License](./LICENSE). The demo website utilizes icons from\n[Lucide][lucide] which are licensed under an ISC license.\n\n[demo]: https://gburghoorn.com/wavedrom\n[svg]: https://en.wikipedia.org/wiki/SVG\n[wavedrom-js]: https://wavedrom.com/\n[tutorial]: https://wavedrom.com/tutorial.html\n[lucide]: https://lucide.dev/\n[hitchhiker]: https://wavedrom.com/tutorial.html\n[cratesio]: https://crates.io/crates/wavedrom-rs\n[cli]: ./wavedrom\n[mdbook-wavedrom]: ./mdbook-wavedrom\n[dtd]: https://en.wikipedia.org/wiki/Digital_timing_diagram\n[book]: https://coastalwhite.github.io/wavedrom-rs\n[cargo-fuzz]: https://github.com/rust-fuzz/cargo-fuzz","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoastalwhite%2Fwavedrom-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoastalwhite%2Fwavedrom-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoastalwhite%2Fwavedrom-rs/lists"}