This repository contains the Skip Framework for building reactive backend services, the Skiplang toolchain that powers its native runtime, and SKDB, a reactive SQL database built on Skip.
Skip is an open-source framework for building reactive backend services.
It is based on a custom-built native backend for efficient reactive computation, allowing your system to deliver up-to-date and correct results without requiring any bug-prone manual dependency tracking and updating.
TypeScript interfaces and abstractions are provided so that you can write a reactive service using standard tools while also taking advantage of the Skip framework's abstractions for efficient reactivity.
To get started, install the skip NPM package:
npm install @skiplabs/skip
Two versions of the runtime are available, a Wasm @skipruntime/wasm and a native @skipruntime/native.
The Wasm runtime is installed by default. It works with both node and bun, but is limited to Wasm's 32-bit memory address space.
The native runtime does not have this limitation, but it is currently only available for Node and is a bit more involved to install (see instructions).
From there, you're ready to start building a reactive service! See the getting started guide to walk through some of Skip's core concepts by example and get up to speed.
See our documentation here for introductions to the core concepts, components, and features of the Skip framework, or dive into the API docs for comprehensive explanations of our TypeScript interfaces and abstractions.
Some small examples of reactive services are available, demonstrating patterns of reactive programming. Another example is designed to serve as an example of how to deploy and configure a reactive service, using Docker compose to package and orchestrate a backend complete with a reactive service, database, backend web service, and reverse proxy.
The Skip Framework's native runtime is implemented in Skiplang. The compiler, runtime, and surrounding tools (skargo, sktest, …) live under skiplang/. See INSTALL.md for instructions on building the toolchain from source.
SKDB is a reactive SQL database, part of the Skip ecosystem. The TypeScript client is published as the skdb NPM package; sources for the client, server, and runtime live under sql/.
We welcome contributions and pull requests and are happy to help you get started! The issue tracker is kept up-to-date with our roadmap and is a good place to begin if you're looking for ideas of ways to contribute.
You can also join our Discord to ask any questions or get involved.
Skip is MIT licensed.