bpm

About bpm

The home for bnl packages.

bpm is the official package manager for bnl — a from-scratch interpreted language with full Bangla and English keyword support. Free, open source, and built in the open.

What it does

A registry for two kinds of packages.

Pure-bnl libraries

Drop them in deps/<name>/ and import "name" just works. Pure source, no compilation, runs on every platform that runs bnl.

Native plugins

Shared libraries (.dll / .so / .dylib) built against the bnl C++ ABI. Publish once with a single manifest; bpm resolves the right binary on install for each platform.

How it fits together

From your machine to the registry, in three steps.

  1. 1

    Author

    Write your package and declare it in bnl.json. Run bpm publish.

  2. 2

    Consume

    Other developers run bpm install <name> and the package lands under their project's deps/.

  3. 3

    Resolve

    The bnl runtime resolves import "name" via a deps directory walk-up — no global state, no version conflicts.

Principles

What we care about.

Reproducibility over convenience

Every install writes a bnl.lock pinning every direct and transitive dependency to an exact version and SHA-256 hash. Commit it. Same install, every machine, every time.

Open source, end to end

The runtime, the CLI, and the registry are all MIT-licensed and developed in the open. Fork it, mirror it, run your own — the protocol is documented.

No telemetry, no trackers

We collect what's needed to operate the registry and nothing more. No analytics scripts on the website. No usage pings from the CLI. Read the privacy policy.

Small, predictable surface

One CLI, one manifest, one lockfile. No plugins, no hooks, no yaml. If something feels magic, we got it wrong.

Project status

Early but stable.

bpm v1.0 is released and we treat the CLI surface as stable. The registry API may evolve while we add features; if it ever changes incompatibly, we'll keep the old version available for at least 6 months.

Found a bug or want to contribute? Open an issue or send a patch.