# orogene

Yet another node_modules/ package manager, I guess.

crates.io GitHub checks
state Project
Roadmap

Orogene is a next-generation package manager for tools that use node_modules/, such as bundlers, CLI tools, and Node.js-based applications. It's fast, robust, and meant to be easily integrated into your workflows such that you never have to worry about whether your node_modules/ is up to date.

Note: Orogene is still under heavy development and shouldn't be considered much more than a tech demo or proof of concept. Do not use in production yet.

Building

Requirements

You will need a Rust toolchain installed. See the official Rust docs for instructions. And git. Next, get a checkout of the source:

git clone https://github.com/orogene/orogene.git cd orogene

Building

Your first build:

cargo build

The first time you run this, this downloads all the dependencies you will need to build orogene automatically. This step might take a minute or two, but it will only be run once.

Then it compiles all the dependencies as well as the orogene source files.

It should end with something like:

… Finished dev [unoptimized + debuginfo] target(s) in 1m 22s

When you’ve made changes to the orogene source code, run cargo build again, and it will only compile the changed files quickly:

cargo build Compiling orogene v0.1.0 (/Users/jan/Work/rust/orogene) Finished dev [unoptimized + debuginfo] target(s) in 2.41s

Running

After building successfully, you can run your build with cargo run. In the default configuration, this will run an oro executable built for your local system in ./target/debug. When you run it, it shows you a helpful page of instructions of what you can do with it. Give it a try:

`` Finished dev [unoptimized + debuginfo] target(s) in 0.14s Runningtarget/debug/oro node_modules/` package manager and utility toolkit.

Usage: oro [OPTIONS]

Commands: ping Ping the registry resolve Resolve a package tree and save the lockfile to the project directory restore Resolves and extracts a node_modules/ tree view Get information about a package help Print this message or the help of the given subcommand(s)

Options: --root Package path to operate on --registry Registry used for unscoped packages --cache Location of disk cache --config File to read configuration values from --loglevel Log output level/directive -q, --quiet Disable all output --json Format output as JSON -h, --help Print help (see more with '--help') -V, --version Print version ```

That’s it for now, happy hacking!