Skip to main content

Whole system architecture and stack

Re:Earth is built for a modern cloud native application, and it allows easily to deploy a Re:Earth application anywhere powered by Docker, even a server-less CaaS platform.

image_0

Front-end stack

  • React: UI framework
  • TypeScript: A language to add a robust type system to JavaScript
  • Cesium: A map engine powered that renders the 3D globe with WebGL on web browsers
  • Resium (built by the Re:Earth team's @rot 1024): Used to make working with Cesium in React a breeze
  • Apollo Client: Used to manage API calls to the backend with GraphQL queries and mutations
  • QuickJS on WebAssembly: Safety executes plugin codes

For further detail please refer to the Front-end guide, in particular Project and component architecture.

Back-end stack

  • Go: A programming language
  • Echo: A web framework
  • MongoDB: A document-oriented NoSQL database
  • GraphQL: A query language for APIs between the front-end and back-end
  • OpenID Connect: Authenticates and authorizes user accounts

For further detail please refer to the Back-end guide, in particular Backend architecture.

Authentication

Currently Auth0 (IDaaS) is used to authenticate users.

When a user tries to log in, they are redirected to Auth0 where an email or username and password are required to gain access to the user's projects, shared workspaces, assets and datasets.

For further detail how the front-end handles authentication please refer to the Front-end guide's How users are authenticated section. If you are after how the back-end handles authentication, please refer to its Authentication section under How does it work.

In the near future, we plan to make it possible to authenticate only with Re:Earth, without using Auth0.