https://www.typefox.io/blog/open-collaboration-tools-announcement/ TypeFox [ ] * services * about * blog * contact Jul 10th 2024 Announcing the Open Collaboration Tools Dr. Miro SponemannDr. Miro Sponemann Mark SujewMark Sujew We are thrilled to unveil our latest open source project: Open Collaboration Tools. It's a collection of libraries and tools for live-sharing of IDE contents, designed to boost remote teamwork with open technologies. The basic idea is simple: one person starts a collaboration session as host and invites others to join. The IDE extension distributes the contents of the host's workspace and highlights text selections and cursor positions of other participants. In parallel, they get together in their favorite meeting or chat app for immediate discussion. All participants see what the others are looking at and and what changes they propose in real-time. This way of remote collaboration reduces confusion and maximizes productivity. In its first public release, Open Collaboration Tools is available with the following components: * A VS Code Extension available on Open VSX and the VS Code Marketplace * An extension for Eclipse Theia * A server application for handling authentication and collaboration sessions, with a public instance available at api.open-collab.tools * An open and extensible protocol with TypeScript libraries facilitating its integration in different environments * End-to-end encryption and extensible user authentication built-in right from the start In addition, an integration with Monaco Editor will be available soon. This unprecedented feature is particularly exciting because it enables fully customizable live collaboration between users of a web application or even between a website and a local IDE. Finally you'll be able to join a live-sharing session started from a full-fledged development environment, simply by opening a website link! The initial version of Open Collaboration Tools focuses on plain text documents: source code of any programming language, Markdown documents, scripting languages, domain-specific languages, configuration formats, HTML and other markup languages, etc. But the story doesn't end here - we are going to add support for other kinds of content creation such as Jupyter Notebooks, diagram editors, and more. The underlying protocol and infrastructure is adaptible to numerous scenarios where real-time collaborative viewing and editing can be helpful. Motivation for new collaboration tools In our daily work with customers, we have seen the need for collaborative editing inside of IDEs over and over again. While there are a few products out there aiming to provide collaborative editing experiences for their users, none of them were quite right for our customers. Let's take a look at an exemplary use case: You are an engineer at a microchip design company. You're using a textual programming language to design chips. To improve productivity, you also have the option to use a graphical editor in your IDE to modify chip design files. Given that these designs are highly sensitive, your company doesn't want any information about them leaving the company network. Now, you want to do some pair-programming with a coworker. What kind of tool can you choose to facilitate that? To our dismay, nothing available fits that bill. What we need is a solution that: 1. Can be plugged into any popular IDE, ideally even support cross-IDE use cases. 2. Is designed to be extensible. Adding custom editors beyond just text can be done with reasonable effort. 3. Runs on premise to ensure absolute data security. 4. Does not bind you to a single vendor. A permissive license would be best to keep control of your tools. Looking at the 3 most popular collaborative editing tools, we will find that at least one of those requirements isn't supported: Product IDEs Extensibility On Licensing Premise VS Live Visual Studio Via VS Code Proprietary Share Products Extension Microsoft Mechanism License^1 VS Code, Theia, Commercial CodeTogether JetBrains, Eclipse [?] License IDE Duckly VS Code, Theia, Commercial JetBrains License ^1 The Microsoft proprietary license allows usage free of charge, but restricts the extension to run only in officially distributed Microsoft products (i.e. no VSCodium, Coder, Gitpod or Theia). Faced with this issue, we are now taking matters into our own hands. This is why the Open Collaboration Tools project is designed with a few core principles in mind: 1. No vendor lock-in: Allow to potentially support any IDE and even your own web application. 2. Absolute extensibility: The underlying protocol can be extended to enable collaboration for any kind of editor. 3. Run wherever you like: Run the server infrastructure on any system, be it locally, on premise or in the cloud. 4. Open Source Licensing: The whole project is licensed under the MIT License and can be used by anyone, in any way they like. The Open Collaboration Protocol The technology to facilitate all of the above is the Open Collaboration Protocol. This protocol specifies how the IDE is supposed to authenticate with a collaboration server, how to create or join a session, and what kind of data is exchanged between users within each session. On a technical level, this is done via a centralized peer-to-peer mechanism. Any user within a session can send an arbitrary notification or request to any other user. Additionally, a broadcasting mechanism allows to send a message to all other users. From a network perspective, each user only communicates to a central server. It is used as a message broker that sends the messages to their respective targets. As a consequence, the server is completely oblivious about the actual content of a message - and we can use that to our advantage. This kind of brokering mechanism enables limitless extensibility of the protocol. As long as the two communicating clients understand each other's messages, they can work together. For example, if I build an IDE with a built-in graphical editor, I just need to additionally send messages to synchronize edits across multiple users and handle any incoming synchronization messages. The protocol already contains built-in support for basic text editors, with more to come soon! The big picture The new Open Collaboration Tools project fits perfectly into our overall strategy: to provide highly customizable tools and frameworks under permissive open source licenses. TypeFox supports businesses to adapt the open source software to their needs and make the best possible use of it to maximize their productivity. In the beginning, we mentioned that a public instance of Open Collaboration Tools is now available at api.open-collab.tools. TypeFox offers this service with the intent to demonstrate the capabilities of our new project and to support open source communities with it. However, we recommend all companies who wish to adopt this new technology to deploy their own instance of it, secured with their existing access restrictions. Get in touch with us if you're interested about support for the customization, deployment and usage of collaboration servers. We are committed to invest further into the Open Collaboration Tools and grow the number and depth of its integrations over time. In the meantime, please check out the new website at www.open-collab.tools and help us spread the word! About the Authors Dr. Miro Sponemann Dr. Miro Sponemann Miro joined TypeFox as a software engineer right after the company was established. Five years later he stepped up as a co-leader and is now eager to shape the future direction and strategy. Miro earned a PhD (Dr.-Ing.) at the University of Kiel and is constantly pursuing innovation about engineering tools. Mark Sujew Mark Sujew Mark is the driving force behind a lot of TypeFox's open-source engagement. He leads the development of the Eclipse Langium and Theia IDE projects. Away from his day job, he enjoys bartending and music, is an avid Dungeons & Dragons player, and works as a computer science lecturer at a Hamburg University. Read more about this topic read the article May 27th 2024 Article Mark Sujew Native Notebook support for Eclipse Theia Mark talks about the road of how contributors get large features into established open source projects, such as Eclipse Theia. read the article read the article Jan 3rd 2024 Article Markus Rudolph Add views to a Langium-powered VS Code extension Markus gives a simple introduction about webviews in VS Code and how to interact with Langium. read the article read the article Dec 13th 2023 Article Dennis Hubner Enhancing communication between extensions and webviews using VS Code Messenger Dennis introduces the VS Code Messenger library and explains how to use it for a better intercommunication between VS Code extension and its webviews. read the article LOAD MORE * services * about * blog * career * contact * contact TypeFox GmbH Am Germaniahafen 1, 24143 Kiel Germany ImprintPrivacy Policy (c) 2023 TypeFoxCreated by Goldener Westen