OpenSavvy Pedestal is a collection of open source utilities for unified software architecture, aiming to solve common problems in a simple and elegant way with Kotlin Multiplatform. In particular, Pedestal focuses on fullstack development.
The rendered documentation for the latest released version is available here. The release notes and changelogs are available here or as Git tags.
This project contains the following modules:
- Pedestal Progress models the progress of an asynchronous task and its subtasks.
- Pedestal State models the success or failure of an operation, without losing progress information.
- Pedestal Cache is a collection of reactive cache implementations to aggressively reduce bandwidth usage with easy integration with reactive UI frameworks, like React or Compose.
- Pedestal Backbone is an opinionated architectural pattern, using aggressive caching in all layers of a multiplatform application to entirely abstract away mutability behind coroutines.
- Pedestal Weak brings cross-platform weak references and weak maps.
Pedestal focuses heavily on Kotlin and attempts to depend on as few external dependencies as possible. Where possible, compatibility modules are provided to interoperate with other ecosystems.
You can easily add any module using Gradle:
repositories {
// Pedestal is available on Maven Central
mavenCentral()
// Or, if you prefer, Pedestal is also available in our own maven repository
maven {
name = "OpenSavvy Pedestal"
url = uri("https://gitlab.com/api/v4/projects/37325377/packages/maven")
}
}
// You can now add a dependency on the various modules:
dependencies {
implementation("dev.opensavvy.pedestal:backbone:<the version you want>")
}
Pedestal is managed by Gradle, which requires a valid Java installation.
On Windows, substitute ./gradlew
by gradlew.bat
in the following commands.
Gradle is invoked by running ./gradlew <tasks here>
in the project root.
./gradlew projects
to list the available projects,./gradlew tasks
to list the available tasks in the root project,./gradlew <project>:<task>
to execute a task from another project (for example,./gradlew backbone:tasks
to get the list of tasks in the Backbone project).
We recommend using IntelliJ IDEA (Community or Ultimate), for which we provide the configuration (run configurations, coding style…).
See CONTRIBUTING.md.
- To learn more about our coding conventions and workflow, see the OpenSavvy website.
- This project is based on the OpenSavvy Playground, a collection of preconfigured project templates.
If you don't want to clone this project on your machine, it is also available using GitPod and DevContainer (VS Code • IntelliJ & JetBrains IDEs). Don't hesitate to create issues if you have problems getting the project up and running.