About us

BPM (Bnlang Package Manager) is the standard tool for discovering, installing, updating, and publishing Bnlang packages. It prioritizes predictable installs, simple workflows, and a healthy community-driven ecosystem.

What is BPM?

BPM is a fast, deterministic package manager for the Bnlang ecosystem. It helps teams install dependencies reliably, keep projects secure, and publish libraries with confidence.

By combining an immutable lockfile, a shared cache, and clear workflows, BPM reduces install time, avoids "works on my machine" issues, and fits smoothly into CI/CD pipelines.

Core principles

How BPM works (at a glance)

  1. Resolve: reads your manifest and lockfile, resolving versions with SemVer rules.
  2. Fetch: downloads archives from your configured registry or mirror into a local cache.
  3. Verify: checks integrity via a hash before unpacking any artifact.
  4. Link: places packages into your project and links executables to a global bin.
  5. Record: writes the final dependency graph to the lockfile for future reproducibility.

Create a project

Initialize a new project and move into its directory.

$ bpm init my-app
$ cd my-app

Manage dependencies

Add or remove packages as your project evolves.

$ bpm install web-framework
$ bpm remove web-framework

Stay up to date

Upgrade packages and optionally audit for advisories.

$ bpm update
$ bpm audit   # optional

Run scripts

Execute scripts defined in your project manifest.

$ bpm run dev
$ bpm run build
$ bpm run start

Publishing packages

  1. Prepare: fill out your manifest (name, version, entry points, files, scripts).
  2. Login: authenticate with your registry.
  3. Pack & verify: BPM creates a tarball and integrity hash.
  4. Publish: upload the package and record the new version in the registry.
Commands
$ bpm login
$ bpm publish

Configuration & files

Security model (summary)

Tips