Skip to content

SoftN v0.0.23

Choose a tag to compare

@github-actions github-actions released this 18 Oct 08:01
· 394 commits to main since this release

SoftN v0.0.23

What's new

  • Upgrading from v0.0.22: the engine is ZIPP v0.0.26, which ZIPP now publishes as plain .wasm files rather than zip bundles; besides it, only the installer that takes it and the documentation changed. A few things logic can see change with it, each in the entry below: iterators have chunks, windows and includes; toFixed, toExponential and toPrecision round exactly; a frozen or sealed class refuses writes to its statics; and eval code sees a builtin global the program replaced or deleted. A FormLogic installs this release only once its checks read the new layout of the archive's ZIPP trees (entry below), and it rebuilds its server sandbox from ZIPP v0.0.26.
  • The engine is ZIPP v0.0.26 (it was v0.0.25), in the browser and in the Rust backend host. The module every app downloads is 6.41 MB where it was 6.19 MB (1.59 MB with Brotli, from 1.54 MB); about 60 KB of that (13 KB with Brotli) is the engine's JavaScript bindings, which ZIPP now publishes inside the module as well. ZIPP measured a Python app's first import torch in a browser from 0.64 s to about 0.27 s in Chromium and from about 32 s to under 0.4 s in WebKit. Logic can see a few of 0.26's changes: iterators have chunks, windows and includes; take and drop refuse a limit above 2^53 − 1 with a RangeError; toFixed, toExponential and toPrecision round exactly, so an edge case can print differently; a for-of break, destructuring or Array.from that closes a generator calls a return the code replaced; a frozen or sealed class refuses writes to its statics; and eval code sees a builtin global the program replaced or deleted.
  • Building SoftN: from 0.0.26 ZIPP publishes each engine as one .wasm file that carries its own bindings and a record of its release, commit and variant, instead of zip bundles. fetch:zipp installs the files as published and checks each against the release's SHA256SUMS and its own record, writes the engine's bindings out as zipp_wasm.js, and takes the engine's type declarations and licence from the release's embed kit. ZIPP no longer publishes a loader for the torch package, so the installer generates SoftN's own zipp_torch.js, which does what ZIPP's did. ZIPP_RELEASE_DIR must now hold SHA256SUMS, zipp-<version>-javascript-python-base.wasm, zipp-<version>-javascript.wasm, zipp-<version>-torch-package.wasm and zipp-<version>-wasm-embed-kit.zip. An existing checkout replaces its 0.0.25 install on the next build or test; a release before 0.0.26 is refused.
  • FormLogic: the release archive's zipp/, zipp-web/ and zipp-torch/ trees hold that install. zipp/ has the engine module as ZIPP published it, its bindings, the kit's declarations and licence, ZIPP's SHA256SUMS and SOURCE.json, with no BUILD-INFO.txt, PROFILE.json or bundle SHA256SUMS. Each record's bundle names a .wasm file, whose digest is bundleSha256, and zipp/SOURCE.json gains a kit record and drops rustc and wasmBindgen, which the release no longer states. A FormLogic whose checks expect the zip-bundle files refuses the archive until they follow, and one that installs it rebuilds its server sandbox from ZIPP v0.0.26.

Downloads

Download What it is Pick it when
softn-website-v0.0.23-zipp-v0.0.26.zip The complete softn.com website. The whole softn.com in one folder: the landing page, the app directory, the web runtime, Builder, Studio, the documentation and the directory API. You want to run your own SoftN site: a directory people can publish apps to and play them from.
softn-app-static-v0.0.23.zip One app on a page (static). The smallest way to host one SoftN app: a plain page with a loading spinner, a permission bar and your app, with no SoftN branding and no server code. You have a .softn app and a web host, and you want the app on a page of your own site.
softn-app-static-with-backend-linux-x64-v0.0.23.zip One app on a page, with an optional PHP server backend. The static single-app page above, plus a backend/ folder that lets the app run its own private server logic and SQLite database on an Apache/PHP host, with no service to keep running. Your app has a private server part (server/ logic, SQL migrations, routes) and your host is Apache with PHP on Linux x86-64.
softn-app-private-v0.0.23.zip One app served privately by PHP. The single-app page again, but PHP renders it and hands the app's files to the browser piece by piece behind a viewer cookie, so the .softn file itself is never at a URL. You do not want visitors (or crawlers) to be able to download your app as one file.
softn-app-private-with-backend-linux-x64-v0.0.23.zip One app served privately by PHP, with an optional server backend. The privately served page above together with the PHP server backend: three folders, webroot/, private/ and backend/. The app works at once without the backend; you enable the backend when the app needs it. You want the .softn file kept off every URL and the app has a private server part.
softn-formlogic-runtime-v0.0.23.zip The SoftN runtime for FormLogic. Everything FormLogic embeds from SoftN, already built: the sandboxed frame FormLogic runs an app in, Builder and Studio as editors inside FormLogic, the server-side runtime for native apps, and the starter adapter. FormLogic’s build downloads this from the latest SoftN release instead of building SoftN from source. You run FormLogic and its build cannot reach GitHub; download this and point SOFTN_RELEASE_ARCHIVE at it.

Each archive unzips with a README.md at the top that explains it; RELEASE-GUIDE.md below compares them all.

The backend download targets Linux x86-64 with Apache/PHP and process execution enabled. It is a generic, unconfigured distribution: install your own public and private app bundles and preserve existing configuration, keys and databases when upgrading. Native XDB synchronization remains a Rust-host feature.

The complete website archive's name carries the tag of the zipp engine inside it. It ships no
example apps: the directory starts empty, and .softn files dropped on any
page of the site publish into it — one, or a folder at once, with the admin
key from data/config.json lifting the hourly limit for the site owner. The
example apps are published as .softn downloads with every
softn-Examples release.
The desktop loader and builder are not attached to releases; they build from
this tag's manifests with npm run tauri build in their apps. RELEASE-GUIDE.md
below compares every download and says which one to take.

The single-app archive includes a small counter example; replace it with your own bundle. It has no app download controls, but browser-delivered app bytes remain extractable. Required license notices are included in all archives.

Built with ZIPP v0.0.26 (its javascript-python-base engine, javascript engine and torch package; the release SHA256SUMS has sha256 dfc1d9067175f35cfc662334220e480fae32f2f2da735b4fdec5c9a52c9f385c).