Brioche

2 min read Original article ↗

A delicious package manager for building and running your most complex software projects

import * as std from "std";

import { cargoBuild } from "rust";

export default function () {

// Build a Rust project

const server = cargoBuild({

source: Brioche.glob("src", "Cargo.*"),

});

// Put it in a container image

return std.ociContainerImage({

recipe: server,

entrypoint: ["/bin/server"],

});

}

Install in seconds, no root permissions required:

curl --proto '=https' --tlsv1.2 -sSfL 'https://brioche.dev/install.sh' | sh

...or view the docs for more installation options

(Currently x86-64/aarch64 Linux only, more platforms coming soon)

Try it out by running Hello World:

brioche run -r hello_world

  • Caching - All build artifacts are saved and re-used between builds, saving you time when only a part of your project changes. You can also use a custom cache to share artifacts between machines
  • Lockfiles - All of your dependencies are automatically saved in a lockfile, making your builds super reliable for everyone on your team
  • TypeScript - Build scripts are written in TypeScript, giving you the flexibility of a familiar full programming language (with great type checking and editor completions!)
  • Cross-ecosystem - Build your project regardless of language, and easily mix different languages and ecosystems in one project
  • Cross-compilation (work in progress) - Easily build your project from any platform, to any platform
  • Dev environments (work in progress) - Set up a suite of tools to help onboard new team members quickly