Skip to content

Commit 106d7ad

Browse files
committed
Update Java guide, roadmap, and feature documentation with latest project status and improvements to sidebar navigation
1 parent e4ac260 commit 106d7ad

File tree

7 files changed

+105
-26
lines changed

7 files changed

+105
-26
lines changed

website/docs/Guides-Java/getting-started.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ Add the following dependency to your `pom.xml`:
3636
</dependency>
3737
```
3838

39+
Or this to your `build.gradle.kts`:
40+
41+
```
42+
implementation("io.lionweb.lionweb-java:lionweb-java-2024.1-core:${lionwebVersion}")
43+
```
44+
3945
## Usage Schema
4046

4147
The typical usage consists in:

website/docs/Guides-Java/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ LionWeb is a specification for model-based software engineering that provides:
2121
## Features
2222

2323
- Support for the definition nodes and languages
24-
- Serialization and deserialization in JSON, Protobuf, and Flatbuffers
25-
- Client-side implementation of the LionWeb bulk protocol, with support for delta coming soon
24+
- Serialization and deserialization in JSON and Protobuf
25+
- Client-side implementation of the LionWeb bulk protocol, with support for delta under development
2626
- Bidirectional conversion between LionWeb and EMF
2727
- Support for both 2023.1 and 2024.1 specifications
2828

website/docs/Guides-Java/roadmap.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ sidebar_position: 3
66

77
The project currently support the core specifications.
88

9-
We will work on implementing support for the delta protocol, as soon as it will be implemented in the LionWeb Repository.
9+
We released version 1.1 in the course of 2025, and we are steadily progressing on:
10+
- Implementing support for the Delta protocol
11+
- Solve any issue reported
12+
- Constantly optimize performance
1013

11-
We will then proceed to review the project, performing some general maintenance and release version 1.0.
12-
13-
Despite the version number being below 1.0, the project is mature, well tested, and used in production.
14+
The project is used in production and actively maintained.
Lines changed: 61 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,73 @@
11
---
22
title: Features
3-
sidebar_position: 32
3+
sidebar_position: 33
44
---
55

6-
# LionWeb Implementations
6+
# LionWeb Feature Matrix
7+
8+
This page provides a comprehensive overview of the features available across different LionWeb implementations and integrations. Whether you're looking to serialize models, work with language definitions, or connect to a repository server, this matrix will help you choose the right implementation for your needs.
9+
10+
## Understanding the Symbols
11+
12+
Throughout these tables, you'll see the following symbols:
13+
-**Fully Supported** - The feature is implemented and ready to use
14+
- 🏗️ **Under Construction** - The feature is currently being developed
15+
-**Status Unknown** - We need to verify the current status of this feature
16+
-**Not Applicable** - This feature doesn't apply to this implementation or integration
17+
18+
## LionWeb Implementations
19+
20+
LionWeb implementations are available in five programming languages, each providing core functionality for working with LionWeb models and languages. These libraries form the foundation for building language workbenches, model transformations, and other language engineering tools.
21+
22+
The table below shows which features are available in each language implementation:
723

824
| **Feature** | **LW C#** | **LW Java** | **LW Kotlin** | **LW TypeScript** | **LW Python** |
925
|-----------------------------------------------------|:---------:|:-----------:|:-------------:|:-----------------:|:-------------:|
1026
| M1 (model) de/serializer from/to LW JSON ||||||
1127
| M2 (language) de/serializer from/to LW JSON ||||||
28+
| M1 (model) de/serializer from/to LW Protobuf ||||||
29+
| M2 (language) de/serializer from/to LW Protobuf ||||||
1230
| Language agnostic (Reflective) API to CRUD LW nodes ||||||
1331
| Language specific API to CRUD LW nodes ||||||
1432
| Bulk protocol Client ||||||
15-
| Delta protocol Client || 🏗️ ||||
16-
17-
18-
# LionWeb Integrations
19-
20-
| **Feature** | **MPS** | **EMF** | **Freon** | **Rascal** | **Modelix** | **LW Repository** |
21-
|------------------------------|:-------:|:-------:|:-------------:|:----------:|:-----------:|:-----------------:|
22-
| Depends on LW implementation | LW Java | LW Java | LW TypeScript | LW Java || LW TypeScript |
23-
| Export to LW M1 (model) |||||||
24-
| Export to LW M2 (language) |||||||
25-
| Import from LW M1 (model) |||||||
26-
| Import from LW M2 (language) |||||||
27-
| Bulk protocol Server |||||||
28-
| Bulk protocol Client |||||||
29-
| Delta protocol Server |||||| 🏗️ |
30-
| Delta protocol Client |||||||
33+
| Delta protocol Client | 🏗 | 🏗️ || 🏗 ||
34+
35+
### Key Features Explained
36+
37+
**M1 and M2 Serialization**: All implementations support both model (M1) and language (M2) serialization to and from LionWeb JSON format and [Protobuf](https://protobuf.dev/) format, enabling seamless data exchange between different tools and platforms.
38+
39+
**API Approaches**: Each implementation offers two complementary APIs:
40+
- **Reflective API**: Work with any LionWeb model dynamically without generated code
41+
- **Language-specific API**: Use strongly-typed, generated code for compile-time safety and better IDE support
42+
43+
**Protocol Support**: The Bulk protocol allows efficient retrieval and storage of large model partitions. The Delta protocol, currently under development for C#, Typescript, and Java, will enable incremental synchronization of model changes.
44+
45+
## LionWeb Integrations
46+
47+
| **Feature** | **MPS** | **EMF** | **Freon** | **Rascal** | **Modelix** | **LW Repository** | **Starlasu** |
48+
|------------------------------|:-------:|:-------:|:-------------:|:----------:|:-----------:|:-----------------:|:------------:|
49+
| Depends on LW implementation | LW Java | LW Java | LW TypeScript | LW Java || LW TypeScript | LW Java |
50+
| Export to LW M1 (model) ||||||||
51+
| Export to LW M2 (language) ||||||||
52+
| Import from LW M1 (model) ||||||||
53+
| Import from LW M2 (language) ||||||||
54+
| Bulk protocol Server ||||||||
55+
| Bulk protocol Client ||||||||
56+
| Delta protocol Server |||||| 🏗️ ||
57+
| Delta protocol Client ||||||||
58+
59+
### Integration Highlights
60+
61+
**MPS and EMF**: The most mature integrations, supporting both model and language import/export. These make it possible to exchange data between JetBrains MPS and Eclipse Modeling Framework projects.
62+
63+
**Freon**: A TypeScript-based language workbench with comprehensive LionWeb support for both models and languages.
64+
65+
**Rascal**: A meta-programming language and toolkit with strong model import/export capabilities.
66+
67+
**Modelix and LW Repository**: These act as server-side repositories, implementing the Bulk protocol to store and serve LionWeb models. The LW Repository is actively developing Delta protocol support for real-time collaborative editing scenarios.
68+
69+
**Starlasu**: This is a family of frameworks for processing textual languages (such as SQL, RPG, COBOL, and many others). More at [Starlasu](https://starlasu.strumenta.com/).
70+
71+
## Contributing
72+
73+
Notice something missing or incorrect? The LionWeb project is community-driven, and we welcome contributions. If you've implemented a feature or know the status of one marked with ❓, please let us know or submit a pull request to update this documentation.

website/docs/Introduction/introduction-to-languages.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: LionWeb Languages
3-
sidebar_position: 31
3+
sidebar_position: 32
44
---
55

66
## About LionWeb Languages

website/docs/Introduction/nodes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: LionWeb Nodes
3-
sidebar_position: 30
3+
sidebar_position: 31
44
---
55

66
# Overview of the LionWeb Model
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: Why Use LionWeb?
3+
sidebar_position: 30
4+
---
5+
6+
# LionWeb: When It Makes Sense to Use It
7+
8+
## Interoperability Across Modeling Tools
9+
LionWeb is useful when multiple tools need to work with the same models. If each tool implements LionWeb support, they can interoperate at several levels:
10+
- exchanging models,
11+
- reusing existing LionWeb-compatible components.
12+
13+
This removes the need for bespoke integrations. It’s especially relevant in domains with long toolchains and mixed vendors, like model-based systems engineering (MBSE). A practical example is enabling different SysML 2 tools to work on the same models using LionWeb.
14+
15+
## Building Real-time Collaboration in Editors
16+
Because the data model and structure are standardized, and thanks to the _delta-protocol_ editors built for different purposes can work together.
17+
18+
This is particularly useful when different kinds of users want to use different editors or simply when multiple people are working on the same model at the same time.
19+
20+
## Using LionWeb Server Capabilities
21+
LionWeb isn’t limited to file formats. The server provides features that keep expanding. For instance, upcoming support for _Derived Models_ will offer new capabilities.
22+
23+
## Model Exchange Through Serialization
24+
You can use LionWeb purely as an exchange format. This is useful when constructing language-engineering pipelines. Each step of the pipeline can:
25+
1. read a model in LionWeb format,
26+
2. transform or analyze it,
27+
3. save the result back in LionWeb format.
28+
29+
Subsequent steps—possibly implemented in different tools—can consume those files. Some tools might compute metrics, others generate dashboards, and others continue the transformation pipeline. This use-case is described in this article: [A Pipeline Approach to Language Migrations](https://www.infoq.com/articles/pipeline-language-migrations/).

0 commit comments

Comments
 (0)