Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sdm-lang/rust-sdml
Rust CLI tools for the Simple Domain Modeling Language (SDML)
https://github.com/sdm-lang/rust-sdml
rust sdml tree-sitter
Last synced: 3 months ago
JSON representation
Rust CLI tools for the Simple Domain Modeling Language (SDML)
- Host: GitHub
- URL: https://github.com/sdm-lang/rust-sdml
- Owner: sdm-lang
- License: other
- Created: 2023-05-24T14:43:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-24T23:01:37.000Z (4 months ago)
- Last Synced: 2024-10-26T11:27:02.440Z (3 months ago)
- Topics: rust, sdml, tree-sitter
- Language: Rust
- Homepage:
- Size: 1.88 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+TITLE: Rust SDML
#+AUTHOR: Simon Johnston
#+EMAIL: [email protected]
#+LANGUAGE: en
#+STARTUP: overview hidestars inlineimages entitiespretty
#+OPTIONS: author:nil created:nil creator:nil date:nil email:nil num:3 toc:nil[[https://raw.githubusercontent.com/sdm-lang/.github/main/profile/horizontal-text.svg]]
Rust Library and Tools for the Simple Domain Modeling Language (SDML).
[[https://opensource.org/licenses/Apache-2.0][https://img.shields.io/badge/License-Apache_2.0-blue.svg]]
[[https://github.com/johnstonskj/rust-sdml/actions/workflows/rust.yml][https://github.com/johnstonskj/rust-sdml/actions/workflows/rust.yml/badge.svg]]
[[https://github.com/johnstonskj/rust-sdml/actions/workflows/security-audit.yml][https://github.com/johnstonskj/rust-sdml/actions/workflows/security-audit.yml/badge.svg]]
[[https://codecov.io/gh/johnstonskj/rust-sdml][https://codecov.io/gh/johnstonskj/rust-sdml/branch/main/graph/badge.svg?token=1HGN6M4KIT]]
[[https://github.com/johnstonskj/rust-sdml/stargazers][https://img.shields.io/github/stars/johnstonskj/rust-sdml.svg]]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.#+CAPTION: Package Organization
#+BEGIN_EXAMPLE
╭───────╮
│ CLI │
╔══ │ crate │ ══╗
║ ╰───────╯ ║
┌╌╌╌╌╌╌╌╌┐ V V
┆ ┆ ╭───────╮ ╭──────────╮ Formatted Source
┆ source ┆ ══> │ parse │ ══> │ generate │ ══> RDF Representation
┆ file ┆ ╭───│ crate │───────│ crate │───╮ Documentation
┆ ┆ │ ╰───────╯ ╰──────────╯ │ Diagrams
└╌╌╌╌╌╌╌╌┘ │ core/errors crate │
╰──────────────────────────────────╯
┌───────┐ ⋀
│ other │ ║
│ tools │ ════════════════╝
└───────┘
#+END_EXAMPLETo install the command-line tool on MacOS or Linux use the Homebrew package manager and the SDML Tap.
#+BEGIN_SRC sh :exports code :eval never
❯ brew install sdm-lang/sdml/sdml
#+END_SRC* Packages
** errorsThis [[./sdml-errors/README.org][package]] contains the common =Error= type as well as a diagnostic set for reporting language parse and model issues.
[[https://crates.io/crates/sdml-errors][https://img.shields.io/crates/v/sdml-errors.svg]]
[[https://docs.rs/sdml-errors][https://img.shields.io/docsrs/sdml-errors.svg]]** core
This [[./sdml-core/README.org][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.[[https://crates.io/crates/sdml_core][https://img.shields.io/crates/v/sdml_core.svg]]
[[https://docs.rs/sdml_core][https://img.shields.io/docsrs/sdml-core.svg]]** parse
This [[./sdml-parse/README.org][package]] contains the bridge from the tree-sitter SDML library to the in-memory model in =sdml_core=.
[[https://crates.io/crates/sdml_parse][https://img.shields.io/crates/v/sdml_parse.svg]]
[[https://docs.rs/sdml_parse][https://img.shields.io/docsrs/sdml-parse.svg]]** generate
This [[./sdml-generate/README.org][package]] contains a set of tools for generating alternative representations of an in-memory module as well as
related actions for the CLI.[[https://crates.io/crates/sdml_generate][https://img.shields.io/crates/v/sdml_generate.svg]]
[[https://docs.rs/sdml_generate][https://img.shields.io/docsrs/sdml-generate.svg]]** cli
This [[./sdml-cli/README.org][package]] contains the entry-point for the command-line tool.
[[https://crates.io/crates/sdml_cli][https://img.shields.io/crates/v/sdml_cli.svg]]
* License
This repository, and all contents, are released under the Apache License, Version 2.0. See [[./LICENSE][LICENSE]] file
for details.For information on contributing, see [[./doc/contributing.org][How to Contribute]], and the [[./doc/code_of_conduct.org][Code of Conduct]].
* Changes
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
* Other Links
** Formatting
- https://github.com/numtide/treefmt/wiki
- https://melpa.org/#/format-all
- https://github.com/tweag/topiary** Linting
- https://github.com/github/super-linter