Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adjivas/ml
A library to generating UML language from Rust's project into graphiz/dot file.
https://github.com/adjivas/ml
dot generator modeling-language uml uml-graphs
Last synced: 5 days ago
JSON representation
A library to generating UML language from Rust's project into graphiz/dot file.
- Host: GitHub
- URL: https://github.com/adjivas/ml
- Owner: adjivas
- License: apache-2.0
- Created: 2017-03-25T00:36:51.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-23T15:51:08.000Z (about 7 years ago)
- Last Synced: 2024-12-31T16:02:11.329Z (22 days ago)
- Topics: dot, generator, modeling-language, uml, uml-graphs
- Language: Rust
- Homepage: https://adjivas.github.io/ml/mml
- Size: 680 KB
- Stars: 83
- Watchers: 2
- Forks: 15
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# ML -Modeling Language-
[![Crate][crate-badge]][crate] [![travis-badge][]][travis] [![appveyor-badge]][appveyor] [![dependencyci-badge]][dependencyci]
A library to generating UML language from Rust's project into graphiz/dot file.
## Usage
This repo is provided as a [Cargo package](http://doc.crates.io/manifest.html) and a [build script](http://doc.crates.io/build-script.html).1. adjust your `Cargo.toml` to include.
```toml
build = "build.rs"[build-dependencies.mml]
version = "0.1"
```2. And your `build.rs` to generate your uml [graph/viz](http://www.graphviz.org/doc/info/lang.html) and Structured Vector Graphics at `target/dot/$CARGO_PKG_NAME.{dot,svg}`.
```rust
extern crate mml;fn main() {
let dest: String = concat!("target/doc/", env!("CARGO_PKG_NAME")).to_string();let _ = mml::src2both("src", dest.replace("-", "_").as_str());
}
```3. (Facultative) From your entry point library file, you can add the generated vectorized graph.
```rust
//! ![uml](ml.svg)
```4. (Facultative) With the [travis-cargo](https://github.com/huonw/travis-cargo)'s instructions, you can prepare your *graphviz*'s dependency like with this example.
```yaml
addons:
apt:
packages:
- graphviz
before_script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install graphviz ; fi
...
script:
- |
travis-cargo build &&
...
```## Features
Consider this list of fonctionalities like unstandard-uml.
* implem -- add a column to show the functions from a implementation.
* fn-emilgardis -- the function fields are preceded by *fn* keyword (Asked by [Emilgardis](https://github.com/Emilgardis)).## Knowledge
This is a reading list of material relevant to *Ml*. It includes prior research that has - at one time or another - influenced the design of *Ml*, as well as publications about *Ml*.
* [Supporting Tool Reuse with Model Transformation](http://www.yusun.io/papers/sede-2009.pdf)
* [Unified Modeling Language Version 2.5](http://www.omg.org/spec/UML/2.5)## License
`ml` is primarily distributed under the terms of both the [MIT license](https://opensource.org/licenses/MIT) and the [Apache License (Version 2.0)](https://www.apache.org/licenses/LICENSE-2.0), with portions covered by various BSD-like licenses.
See [LICENSE-APACHE](LICENSE-APACHE), and [LICENSE-MIT](LICENSE-MIT) for details.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.[crate-badge]: https://img.shields.io/badge/crates.io-v0.1-orange.svg?style=flat-square
[crate]: https://crates.io/crates/mml
[travis-badge]: https://travis-ci.org/adjivas/ml.svg?branch=master&style=flat-square
[travis]: https://travis-ci.org/adjivas/ml
[appveyor-badge]: https://ci.appveyor.com/api/projects/status/7nvg286cq11f5l7l?svg=true
[appveyor]: https://ci.appveyor.com/project/adjivas/ml/branch/master
[dependencyci-badge]: https://dependencyci.com/github/adjivas/ml/badge
[dependencyci]: https://dependencyci.com/github/adjivas/ml