Skip to content

Runtime

All extensions to Caido are written in Javascript. This allows us to have an unified developement experience across the frontend and backend.

But each Javascript runtime is a bit different, we will go over the specificities in this document.

Frontend

Javascript in the frontend (from Frontend Plugins) runs inside the browser or electron.

WIP

Backend

Javascript in the backend (from Workflows and Backend Plugins) runs in a small embedded engine called QuickJS. This engines supports most of the ES2023 specification, but don't be surprised if some more recent language improvements are not available.

By default this engine doesn't come with any of the modules you might expect from NodeJS. To bridge the gap we are re-implementing some of the most popular modules ourselves. While we try to document those modules here, the most up-to-date documentation will always be the Typescript definition from @caido/sdk-backend or @caido/sdk-workflow.

Here are the modules we have implemented so far:

  • child_process
  • sqlite (Async version)
  • buffer
  • fs / fs/promise
  • net
  • os
  • path
  • crypto (Partially)