Skip to main content
  • Log in
  • Manage Cookies
projects.eclipse.org
Download
  • Projects
  • Working Groups
  • Members
  • Community
    • Marketplace
    • Events
    • Planet Eclipse
    • Newsletter
    • Videos
    • Blogs
  • Participate
    • Report a Bug
    • Forums
    • Mailing Lists
    • Wiki
    • IRC
    • Research
  • Eclipse IDE
    • Download
    • Learn More
    • Documentation
    • Getting Started / Support
    • How to Contribute
    • IDE and Tools
    • Newcomer Forum
  • More
      • Community

      • Marketplace
      • Events
      • Planet Eclipse
      • Newsletter
      • Videos
      • Blogs
      • Participate

      • Report a Bug
      • Forums
      • Mailing Lists
      • Wiki
      • IRC
      • Research
      • Eclipse IDE

      • Download
      • Learn More
      • Documentation
      • Getting Started / Support
      • How to Contribute
      • IDE and Tools
      • Newcomer Forum
    • Search

  1. Home
  2. Projects
  3. Eclipse Cloud Development
  4. Eclipse Sprotty™

Eclipse Sprotty™

Primary tabs

  • Overview(active tab)
  • Downloads
  • Who's Involved
  • Developer Resources
  • Governance
  • Contact Us

Eclipse Sprotty™ is a next-generation, open-source, web-based diagramming framework.

Instead of using a cross-compiler or an existing framework, we decided to start from scratch with web technologies: The client is implemented in TypeScript, SVG is used for rendering, and CSS for styling. We also use a unidirectional event-cycle with a virtual DOM as opposed to the traditional model-view-controller pattern to better fit the demands of web applications.

One focus is on a modern, user-centric look and feel. For example, animations are built right into the core of the framework, such that the user always sees smooth transitions to guide the user’s eye. Model updates, undo/redo, navigation, everything is animated by default.

Sprotty explicitly supports to use a remote backend, allowing to visualize data that is not necessarily present in the browser app. This is not only a preferred scenario for database backends, but also meets the setting of the Language Server Protocol, where the backend encapsulates the semantics of the language. Thus, you can extend a language server with a Sprotty backend that delivers Sprotty diagrams to the frontend. As most Cloud IDEs are using the LSP, this makes Sprotty an excellent choice for diagrams to visualize code, like type-hierarchies, component dependencies etc.

For the communication between client and server, Sprotty defines a very simple but extensible JSON protocol. As the same messages are used as events in the client internally, you can almost arbitrarily balance the memory demands and computational workload between client and server by passing certain messages to the server while processing others locally. Part of the protocol is a similarly extensible diagram model, which can even be used for models beyond the usual nodes, edges and ports.

As the code is wired-up using dependency injection, you can not only add your own model elements, figures, behaviors, etc. but also replace other default components that don’t fit your need. This way Sprotty is extremely adaptable to all kinds of use cases.

In addition, Sprotty provides glue code to integrate with

  • The Language Server Protocol,

  • Xtext language backends based on LSP,

  • The Eclipse Theia IDE framework, and as such with Eclipse Che,

  • The Eclipse Layout Kernel, both client-side and server-side,

  • Eclipse RCP, via lsp4e and the SWT browser widget.

Industry Collaborations: 
Cloud Development Tools
Licenses: 
Eclipse Public License 2.0
一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception

The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.

Latest Releases: 

From March 8th, 2019 to December 23rd, 2022

NameDateReview
0.13.02022-12-23
0.12.02022-06-01
0.11.02021-11-30
0.10.02021-10-21
0.9.02020-08-19
0.8.02020-04-07
0.7.02019-10-15
0.6.02019-03-08
Active Member Companies: 
Member companies supporting this project over the last three months.
    Contribution Activity: 
    Commits on this project (last 12 months).
    Incubating - Eclipse Sprotty™

    Related Projects

    Project Hierarchy:

    • Eclipse Cloud Development
    • Eclipse Sprotty™

    Eclipse Foundation

    • About Us
    • Contact Us
    • Sponsor
    • Members
    • Governance
    • Code of Conduct
    • Logo and Artwork
    • Board of Directors
    • Careers

    Legal

    • Privacy Policy
    • Terms of Use
    • Copyright Agent
    • Eclipse Public License
    • Legal Resources

    Useful Links

    • Report a Bug
    • Documentation
    • How to Contribute
    • Mailing Lists
    • Forums
    • Marketplace

    Other

    • IDE and Tools
    • Projects
    • Working Groups
    • Research@Eclipse
    • Report a Vulnerability
    • Service Status

    Copyright © Eclipse Foundation. All Rights Reserved.

    Back to the top