Skip to content

Releases: Intellection/exstatic

v0.2.1

13 Feb 13:12
54b4048

Choose a tag to compare

Release version 0.2.1

v0.2.0

13 Feb 11:45
8b86199

Choose a tag to compare

Release version 0.2.0

v0.1.3

10 Feb 11:41
bd38583

Choose a tag to compare

Fixed

  • Includes the native source code in the hex release if folks want to build rust backend locally (can be done by setting EXSTATIC_BUILD=true

v0.1.2

08 Feb 21:58

Choose a tag to compare

Enabled authenticated downloads from the Exstatic repo:

  • Exstatic is a private, direct public URLs are not an option. In v0.1.2 we implement GitHub's private asset download flow, for retrieving the NIF binaries.
  • Users must provide a Github Personal Access Token (PAT) (in EXSTATIC_GITHUB_TOKEN env var) with sufficient priveleges to download precompiled binaries.

v0.1.1

07 Feb 19:04
128ffdf

Choose a tag to compare

Specifies target in RustPrecompiles config.

v0.1.0

07 Feb 18:37
0dfd799

Choose a tag to compare

Summary

Currently, developers using Exstatic must manually build the Rust NIFs, requiring a Rust toolchain and dependencies. This PR introduces the RustlerPrecompiled package which streamlines the usage of precompiled NIFs, removing the need for users to build the Rust code themselves. This PR also enhances the CI/CD pipeline with GitHub Actions for testing, precompiling, and releasing NIFs.

Main Changes

RustlerPrecompiled Integration

  • Updates Exstatic.Native to use RustlerPrecompiled instead of direct compilation via Rustler.
  • Precompiled NIFs will be downloaded from GitHub Releases, reducing local build dependencies.
  • Defines nif_versions: ["2.16"] to target OTP 26 & 27.

GitHub Actions for Precompiled NIF Builds (release.yml)

  • Builds NIFs only for macOS & Linux (both ARM and x86_64 for each, we can probably do away with one of the linux builds in the CI depending on what we use for prod builds).
  • Uses philss/rustler-precompiled-action to cross-compile and upload binaries.
  • Triggers on:
    • New tags (e.g., v0.1.0).
    • Main branch pushes.
    • PRs that modify native code or the release.yml file.
  • Uploads NIFs to GitHub Releases when a tag is pushed.

Additional Notes

⚠️ By default, mix compilation will attempt to fetch the precompiled NIFs from GitHub Releases. To force local compilation (e.g. if you're developing Exstatic locally), set EXSTATIC_BUILD=true.