PureScript Registry

What PureScript Registry is
The PureScript Registry is a package registry for the PureScript programming language. It fetches package source from a specified public location, validates and compiles it, creates a tarball, and updates its indexes. Supported source locations include arbitrary Git repositories, not only GitHub. Packages must meet source verification requirements, including a `src` directory with at least one `.purs` file and a successful compile. The registry curates package sets whose members are known to compile together and attempts to produce new sets daily when eligible packages are available. Spago is identified as the standard PureScript package manager and the registry's reference implementation; the repository says it is the only package manager with official registry support. After a successful publish, documentation publication to Pursuit is attempted, though that step requires compiler version 0.14.7 or later and its failure does not prevent the package publish. The registry records SHA256 hashes for tarballs. Anyone can publish a version, while unpublishing or transferring requires an authenticated package-owner action. Unpublishing is generally limited to 48 hours after publication, except for legal removals.
Who it suits
The registry is for PureScript package authors and users, especially those working with Spago. Authors can publish from supported Git locations, while package managers can retrieve stored source tarballs.
What it does well
- Accepts packages from Git repositories beyond GitHub.
- Curates package sets known to compile together.
- Records SHA256 hashes for package tarballs.
- Anyone can publish a package version.
- Supports package publishing and installation through Spago.
What to know first
- Source must include a `src` directory and `.purs` file.
- Official registry support is limited to Spago.
- Unpublishing is generally limited to 48 hours.
- Pursuit documentation publishing requires compiler 0.14.7 or later.
Limits
A package version can generally be unpublished only during the first 48 hours after publication, except for legal removals. Documentation publication to Pursuit requires compiler version 0.14.7 or later, and a package must compile successfully with a supported compiler.
Getting started
- Open https://registry.purescript.org/
- Prepare a package with an accepted manifest and a src directory containing a .purs file
- Place the source at a supported public location such as a Git repository
- Request publication so the registry can fetch, compile, and package the source
- Use Spago to publish and install packages, or use the API to publish packages
Verdict
The PureScript Registry combines package validation, tarball storage and curated package sets for the PureScript ecosystem. Authors should check its source requirements and the limited unpublishing window before publishing.
Questions
Is PureScript Registry free?
Yes. Its pricing model is free, and it is open source.
Which package managers support it?
Spago is the standard PureScript package manager and the only package manager with official registry support described by the repository.
Where can package source be hosted?
Authors can specify supported locations including arbitrary Git repositories, not only GitHub.
What manifests are accepted?
The registry currently accepts purs.json and spago.yaml. bower.json and spago.dhall are also accepted for adding or updating packages, with legacy manifests still accepted for now.
Can anyone publish a package version?
Anyone can publish a package version. Unpublishing or transferring a package requires an authenticated operation signed with an SSH key belonging to a package owner or registry trustee.
What happens after publishing?
The registry validates and compiles the source, creates a tarball, records its SHA256 hash, updates indexes, and attempts to publish documentation to Pursuit.
Facts from PureScript Registry's own pages
- API operations
- The API supports registering, publishing, updating, transferring, and unpublishing packages, along with package set updates. · github.com, 9 Oct 2026
- Build checks
- The specification says registry packages are verified to solve and compile with at least one supported compiler version. · github.com, 9 Oct 2026
- Documentation limit
- Publishing documentation to Pursuit requires compiler version 0.14.7 or later, and a documentation publishing failure does not fail the package publish operation. · github.com, 4 Oct 2026
- Integrations
- Spago integrates with the registry for package publishing and installation, and published documentation is uploaded to Pursuit. · github.com, 9 Oct 2026
- Integrity
- Published package tarballs have SHA256 hashes that package managers can use to verify integrity. · github.com, 9 Oct 2026
- Manifest limits
- To add or update a package, it must contain a bower.json, spago.dhall, or purs.json manifest; legacy manifests are still accepted for now. · github.com, 9 Oct 2026
- Owner security
- Sensitive package actions such as transfers and unpublishing require an authenticated operation signed with an SSH key belonging to a package owner or registry trustee. · github.com, 9 Oct 2026
- Package age limit
- The specification says packages published before May 2019 are not included if they cannot satisfy the registry's compiler compatibility requirement. · github.com, 9 Oct 2026
- Package locations
- Packages can be published from supported locations including arbitrary Git repositories, not only GitHub. · github.com, 4 Oct 2026
- Package manager use
- Most PureScript users interact with the registry through package managers; the repository says Spago is the only package manager with official registry support. · github.com, 9 Oct 2026
- Package publishing
- The registry fetches package source from a specified location, validates and compiles it, creates a tarball, and updates its indexes. · github.com, 4 Oct 2026
- Package sets
- Curated package sets list package versions known to compile together and are updated daily. · github.com, 9 Oct 2026
- Package storage
- The registry stores package source tarballs for package managers to download. · github.com, 9 Oct 2026
- Publication model
- Authors request that the registry fetch package code from a public location rather than uploading package files directly. · github.com, 9 Oct 2026
- Publishing access
- Anyone can publish a package version, while unpublishing or transferring a package requires an authenticated operation by a package owner. · github.com, 4 Oct 2026
- Publishing workflow
- The registry fetches package code from a remote location, attempts to compile it, uploads documentation to Pursuit, and adds it to the day's package set batch. · github.com, 9 Oct 2026
- Purpose
- The PureScript Registry stores PureScript packages and metadata and provides an API for package operations. · github.com, 9 Oct 2026
- Pursuit integration
- After a successful package publish, the registry attempts to publish the package documentation to Pursuit. · github.com, 4 Oct 2026
- Spago integration
- Spago is identified as the standard PureScript package manager and the registry's reference implementation. · github.com, 4 Oct 2026
- Support and administration
- The repository directs authors who want to publish without Spago to open an issue using its Publish workflow. · github.com, 9 Oct 2026
- Supported manifests
- The registry currently accepts packages with a purs.json or spago.yaml manifest. · github.com, 4 Oct 2026
- Unpublishing limit
- A package version can generally be unpublished only within 48 hours of publication, unless the registry must remove it for legal reasons. · github.com, 4 Oct 2026
- Validation limit
- A package must contain a src directory with at least one .purs file and compile successfully to pass source verification. · github.com, 4 Oct 2026
Where PureScript Registry stands on Freedom251
- Code Transpilers#28 of 28
- Package Registries#28 of 28