Rust Library and Tools for the Simple Domain Modeling Language (SDML).
This project’s intent is to provide an idiomatic implementation of the in-memory model, parser, generators, and the CLI tool. The following figure shows the usage and relationships of the packages in this workspace.
╭───────╮ │ CLI │ ╔══ │ crate │ ══╗ ║ ╰───────╯ ║ ┌╌╌╌╌╌╌╌╌┐ V V ┆ ┆ ╭───────╮ ╭──────────╮ Formatted Source ┆ source ┆ ══> │ parse │ ══> │ generate │ ══> RDF Representation ┆ file ┆ ╭───│ crate │───────│ crate │───╮ Documentation ┆ ┆ │ ╰───────╯ ╰──────────╯ │ Diagrams └╌╌╌╌╌╌╌╌┘ │ core/errors crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ other │ ║ │ tools │ ════════════════╝ └───────┘
To install the command-line tool on MacOS or Linux use the Homebrew package manager and the SDML Tap.
❯ brew install sdm-lang/sdml/sdml
This package contains the common Error
type as well as a diagnostic set for reporting language parse and model issues.
This package contains the in-memory model of an sdml module, the major component of the project itself. It also has traits (`ModuleLoader`, `ModuleResolver`, `ModuleStore`) that are required by packages that follow.
This package contains the bridge from the tree-sitter SDML library to the in-memory model in sdml_core
.
This package contains a set of tools for generating alternative representations of an in-memory module as well as related actions for the CLI.
This package contains the entry-point for the command-line tool.
This repository, and all contents, are released under the Apache License, Version 2.0. See LICENSE file for details.
For information on contributing, see How to Contribute, and the Code of Conduct.
After version 0.1.4 the single crate has been replaced with the four sdml-core
, sdml-errors
, sdml-parse
, sdml-generate
, and sdml-cli
.
Each will have it’s own version history starting with 0.1.5.
Version: 0.1.4
- Support the latest grammar
- UML Class Diagram (initial)
- Modeling Library modules
Version: 0.1.3
- Support the latest grammar
Version: 0.1.2
- Syntax highlighting supported
- Support the latest grammar
Version: 0.1.1
- More drawing details
- More command-line features
- Support the latest grammar
Version: 0.1.0
- Initial version, limited to basic drawings