v0.0.47
Summary
This release introduces support for writing serverless functions in TypeScript. Developers can now choose between Rust and TypeScript for backend logic, with both approaches designed to follow a similar structure and API surface. Switching between the two, or migrating over time, should feel intuitive. More details are available in the documentation, reference and guides.
It also marks a shift in focus toward local-first development. While previous versions defaulted to building directly against production, this release encourages starting locally. To support this, a new Docker image called Skylab has been introduced. It bundles everything needed for local development—including the Console UI—offering a setup that closely mirrors the mainnet experience.
Finally, this release prepares for the removal of the version()
and build_version()
endpoints in all modules. Instead, each WASM now includes a public juno:package
custom section containing metadata such as the module’s name, version, and dependencies.
For example:
{
"name": "@junobuild/satellite",
"version": "0.0.22"
}
And if extended by a developer:
{
"name": "test-satellite",
"version": "0.0.1-test",
"dependencies": {
"@junobuild/satellite": "0.0.22"
}
}
This new approach is more flexible and opens the door to features like module templates or fine-grained dependency management.
[!NOTE] No new versions of the modules included.
Overview
Module | Version | Breaking changes |
---|---|---|
Sputnik | 0.1.0 | 🆕 ️ |
Crates | Version | Breaking changes |
---|---|---|
junobuild-satellite | v0.1.0 | ⚠️ (version() deprecated) |
junobuild-storage | v0.1.0 | ️ |
junobuild-collections | v0.1.0 | ️ |
junobuild-shared | v0.1.0 | |
junobuild-macros | v0.1.0 | ️ |
junobuild-utils | v0.1.0 | ️ |
Library | Version | Breaking changes |
---|---|---|
@junobuild/core | v0.1.11 | |
@junobuild/core-standalone | v0.1.11 | |
@junobuild/admin | v0.2.0 | ⚠️ |
@junobuild/analytics | v0.1.8 | |
@junobuild/functions | v0.1.0 | 🆕 |
@junobuild/storage | v0.1.7 | ️ |
@junobuild/console | v0.1.7 | ️ |
@junobuild/cli-tools | v0.1.9 | |
@junobuild/config | v0.1.6 | |
@junobuild/config-loader | v0.2.1 | ⚠️ |
@junobuild/utils | v0.1.3 | ️ |
@junobuild/errors | v0.0.7 |
CLI | Version | Breaking changes |
---|---|---|
@junobuild/cli | v0.2.14 | ⚠️ |
Plugins | Version | Breaking changes |
---|---|---|
@junobuild/vite-plugin | v3.3.0 | ⚠️ |
@junobuild/nextjs-plugin | v3.3.0 | ⚠️ |
Templates | Version | Breaking changes |
---|---|---|
create-juno | v0.4.1 | ⚠️ |
satellite-template | v0.0.5 | |
observatory-templates | v0.0.3 |
Docker | Version | Breaking changes |
---|---|---|
@junobuild/skylab | v0.0.55 | 🆕 |
@junobuild/satellite | v0.0.55 | |
@junobuild/console | v0.0.55 | |
@junobuild/action | v0.1.0 |
Changes
Here is a list of changes included in this release:
Console (Backend)
No changes.
Console (Frontend)
The Console UI/UX has been improved as follows:
Features
- Load version and dependency information using the new custom section
juno:package
(with fallback to previous methods for backward compatibility). - Mark
version()
andbuild_version()
as deprecated. - Extend the store to handle version data and introduce a corresponding component loader.
- Use the full window width for the Functions page.
- Update the list of subnets.
- Convert environment constants (e.g.,
dev
,prod
) into functions to improve testability. - Hide the navbar on scroll.
- Review and update guides and related links.
Development-Only Features
- Add a "Get ICP" button to the Wallet.
- When creating a new module (Satellite or Orbiter), fetch the emulator identity and attach it as a controller.
- Introduce a new
SKYLAB
environment used to run the Console UI locally and toggle features specific to the containerized development environment. - Display a "DEV Console" banner when the Console is running locally.
- Skip calls to the BN if the relevant environment variables are not set.
Styles
- Increase the main content max width to 1440px for better support on most devices (especially laptops with 1920px resolution).
- Display version information as tags.
Build
- Update dependencies.
Satellite
No changes released in this version.
Mission Control
No changes released in this version.
Orbiter
No changes released in this version.
Observatory
No changes released in this version.
Sputnik 🆕
Sputnik is a new module introduced in this release.
It extends the default Satellite module and reuses the same system of hooks and assertions. Rather than functioning as a standalone module, it acts primarily as a proxy, delegating execution to the serverless functions written by the developer.
In other words, it cannot be used on its own but serves as a runtime for custom logic.
Library
Please refer to the releases for details.
CLI
Please refer to the releases for details.
Plugins
Please refer to the releases for details.
Templates
Please refer to the create-juno and satellite-template releases for details.
GitHub Action
Please refer to the releases for details.
Docker
Please refer to the releases for details.
Proxy
Please refer to the releases for details.