Jonas Helming, Maximilian Koegel and Philip Langer co-lead EclipseSource. They work as consultants and software engineers for building web-based and desktop-based tools. …
CDT Cloud Blueprint: Try it Online! (...or offline)October 4, 2023 | 5 min Read
Are you looking for a modern, web-based C/C++ IDE that seamlessly operates within your browser as well as a conventional desktop application? Whether you aim to create a tailored, domain-specific C/C++ IDE or a cloud-based service with local installation capabilities, this article explores the deployment possibilities of CDT Cloud Blueprint – an extensible and customizable all-open-source C/C++ IDE designed for both offline and online scenarios.
Before we dive into the specifics, let’s make sure you have all the information you need for trying it out: CDT Cloud Blueprint is available as a downloadable desktop application or as a web-based IDE, which you can try online instantly without any installation.
CDT Cloud Blueprint is not only a vanilla all-open-source C/C++ development tool with a modern web-based user interface, it can also serve as the basis for developing your own custom C/C++ tool. In this article, we focus on the ability of CDT Cloud Blueprint to be deployed as a desktop application, but also run in the cloud as a browser application.
Running CDT Cloud Blueprint online
Running tools online provides several huge advantages. Users can access a tool from anywhere, just using a browser. Complex project setups and prerequisites of the operating system are automatically handled in a cloud infrastructure. Consequently, developers can start coding in a blink of an eye. With just a usual web link, you can even already point developers to a specific project, including the all the tools their need to start coding, building, and debugging.
Being based on the powerful IDE platform Eclipse Theia, CDT Cloud Blueprint supports the use case of being hosted online very well. It does so based on a two tier architecture (see diagram below), like many modern apps. The UI (CDT Cloud Frontend) is rendered in a browser. The business logic (CDT Cloud Backend) runs on a Node server, which can also interact with other processes and technologies, such as language servers, compilers, debuggers, etc.
This architecture enables a lot of flexibility as it facilitates two distinct deployment variants from the same code base:
- Cloud deployment: The backend is hosted in the cloud, the frontend in a regular browser. In this scenario, users can access the tool from anywhere just by using a regular browser.
- Desktop deployment: Backend and frontend are bundled together via Electron resulting in a regular desktop application that can be installed locally.
As both variants are actually compiled from the same source code, CDT Cloud Blueprint — but also any custom tool you build on top of it — can support both variants without significant additional effort.
Hosting A Custom CDT Cloud Blueprint with Theia Cloud
When considering an online version of your tool, you need to take care of hosting the workspaces for your users. More precisely, you need to provide an infrastructure that can create dedicated containers, including a filesystem, for every user to run an instance of the tool backend. In contrast to business applications, this encapsulation per user is necessary, as tool backends need to spin up several processes such as compilers and also need access to a file system.
To simplify the orchestration of your tool backend end infrastructure, there is a framework called Theia Cloud. Based on Kubernetes, Theia Cloud manages the orchestration and the lifecycle of user workspaces, including creating containers, provisioning the filesystem, and managing the access to those workspaces. To achieve this, Theia Cloud is based on the latest and evolving blueprints and best practices distilled from long-term industry experience in hosting cloud-based tools and IDEs. The deployment of CDT Cloud Blueprint behind the “Try Online” button mentioned above is in fact hosted by running Theia Cloud.
Not ready for the Cloud yet? Take a step at a time!
The flexible architecture of CDT Cloud Blueprint allows offline and online deployments. This is especially interesting when migrating an existing tool offering to the web stack. Many projects have chosen the desktop deployment first. However, by switching to a web-based platform such as CDT Cloud, you not only benefit from a modern web-based look and feel, but your custom IDE is already very well prepared for the next step in the future: migrating your tools entirely into the cloud and running them online.
How to get started?
Try out CDT Cloud Blueprint and follow the hints on the tool’s welcome page to get started exploring its capabilities. If you like what you see, be aware that CDT Cloud Blueprint is a template tool. Thus, everything you see in CDT Cloud Blueprint is just the beginning, ready to be customized and extended for your specific requirements and use cases of your custom tool offering. For more information, also check out the CDT Cloud Blueprint documentation.
If you are interested in building a C/C++ tool (online or offline) or migrating an existing one to a modern technology stack, EclipseSource has many years of experience in developing custom C/C++ tools. We can assist you in the conception phase, and also the design and the development of your toolchain. Please have a look at our service offering for tools and web-based tools.