Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLAR Logo

LLAR

Test codecov Language

LLAR is a cloud-based multi-language package manager built with XGo. It resolves dependencies, downloads source code, and builds libraries from source using declarative formulas.

Installation

go install -ldflags="-checklinkname=0" github.com/goplus/llar/cmd/llar@latest

Usage

Install a package

# Install zlib and its dependencies
llar install madler/zlib@v1.3.2

# Show remote build output
llar install -v madler/zlib@v1.3.2

# Install a selected build matrix
llar install --os linux --arch amd64 --option shared=ON madler/zlib@v1.3.2

# Print the installed module result as JSON
llar install --json madler/zlib@v1.3.2

# Install and copy the root artifact into a directory
llar install -o ./zlib-out madler/zlib@v1.3.2

# Install and export the root artifact as an archive
llar install -o zlib.tar.gz madler/zlib@v1.3.2

Build a package

# Build zlib
llar make madler/zlib@v1.3.1

# Build with verbose output
llar make -v madler/zlib@v1.3.1

# Print the build result as JSON
llar make --json madler/zlib@v1.3.1

# Build and export to a directory
llar make -o ./output madler/zlib@v1.3.1

# Build and export as a zip archive
llar make -o zlib.zip madler/zlib@v1.3.1

# Build a local formula
llar make ./@1.0.0
llar make ./madler/zlib@v1.3.1

Commands

Command Description
llar install <module@version> Install a module from LLAR Cloud
llar make <module@version> Build a module from source
llar test <module@version> Verify a module's installed artifacts

Flags for make and install

Flag Description
-v, --verbose Enable verbose build output
-j, --json Print the module result as JSON
-o, --output <path> Output path (directory, .zip, or .tar.gz)

How It Works

  1. Formula resolution - LLAR fetches the build formula for the requested module from the formula hub
  2. Dependency resolution - The formula's onRequire callback extracts dependencies, which are resolved using MVS (Minimum Version Selection)
  3. Build - Dependencies are built first (leaves before roots), then the main module is built via the formula's onBuild callback
  4. Caching - Build results are cached per (module, version, platform) so rebuilds are instant

LLAR Design

Version Comparison

compareVer (a, b) => {  # version comparison
    ...
}

LLAR Formula

See LLAR Formula.

About

Cloud-based Package Management Service

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages