Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

cbp logo

PublishBuildCodecovLines of codeLicenseDocumentation

cbp is a Cross-platform Binary Package manager that simplifies the distribution of CLI tools, with a focus on bioinformatics software. It ensures compatibility with older Linux systems ( glibc 2.17+), Windows (x86_64), and provides native support for Apple Silicon, using Zig for reliable cross-platform builds.

The name cbp draws inspiration from DNA's constant base pairing - nature's most precise pairing system where A pairs with T, and G pairs with C. Similarly, cbp ensures consistent binary compatibility across different platforms, making software distribution as reliable as DNA replication.

Features

  • Cross-platform compatibility
    • Linux (glibc 2.17+)
    • macOS (Apple Silicon)
    • Windows (x86_64)
  • Minimal dependencies
    • Only requires a terminal (Bash/PowerShell)
  • Package management
    • Pre-built binaries without dependencies
    • GitHub release integration
    • Local package support
    • Customizable installation paths

Quick Start

  • Linux/macOS
# Install cbp
curl -LO https://github.com/wang-q/cbp/releases/latest/download/cbp.linux
chmod +x cbp.linux
./cbp.linux init
source~/.bashrc
# List available packages
cbp avail
# Install packages
cbp install fd jq
# Manage packages
cbp list # list installed packages
cbp list fd # show package contents
cbp remove fd # remove package
  • Windows
# Install cbp
iwr "https://github.com/wang-q/cbp/releases/latest/download/cbp.windows.exe"-OutFile cbp.windows.exe
.\cbp.windows.exe init
# Restart terminal# The rest is the same as Linux/macOS

⚠️ Windows WSL is Linux.

cbp help

Current release: 0.4.0

$ cbp help`cbp` is a Cross-platform Binary Package managerUsage: cbp [COMMAND]Commands: init Initialize cbp environment install Download and install packages from GitHub local Install packages from local binaries list List installed packages and their contents remove Remove installed packages info Display package information avail List available packages from GitHub check Check for unmanaged files tar Create compressed archive prefix Display cbp installation directories build Build package commands collect Collect and package files into a tar.gz archive help Print this message or the help of the given subcommand(s)Options: -h, --help Print help -V, --version Print versionPackage Manager Features: * Linux/macOS/Windows * Pre-built binaries without dependencies * Customizable installation pathsDirectory Structure: ~/.cbp/ ├── bin/ - Executable files ├── cache/ - Downloaded packages ├── records/ - Package file lists └── include/, lib/, share/ - Installed filesQuick Start: cbp init # Initial setup cbp install <package> # Install package cbp list # List installed packages cbp avail # List available packages

Supported Packages

Current supported packages can be viewed using cbp avail.

Or visit the Release page.

Python 3

cbp provides a minimal Python installation. To use Python effectively:

# Install Python 3
cbp install python3.11 uv
# Set up pip
python3 -m ensurepip --upgrade
python3 -m pip install --upgrade pip setuptools wheel
# Available Python installations
uv python list
# Install Python packages
uv pip install --system numpy matplotlib

Architecture

  1. Package Management

    • Command-line interface
    • Package status tracking
    • Network proxy support
  2. Build System

    • Zig-based cross-compilation
    • Platform-specific optimizations
    • Static linking preferred
    • Reproducible builds
  3. Directory Layout

    • Runtime
      • ~/.cbp/ - User installation directory
      • bin/ - Executable files
      • cache/ - Downloaded packages
      • records/ - Package file lists
    • Packages
      • scripts/ - Build automation
      • sources/ - Upstream packages
      • binaries/ - Pre-built packages
    • src/, tests/ - Rust source code
  4. Core Components

    • Package manager (Rust)
      • Installation and removal
      • File tracking
      • Cache management
    • Build system (Zig cc)
      • Cross-compilation
      • Package creation
      • Testing framework

For detailed information about development and build process, see the Developer Guide.

Contributing

We welcome contributions! Here's how you can help:

  1. Report issues
  2. Request new packages
  3. Submit pull requests
  4. Improve documentation

License

This project is licensed under the MIT License - see the LICENSE file for details.

FAQ

Why use Zig for cross-compilation?

Zig provides a consistent cross-compilation experience across different platforms and targets specific glibc versions, which is essential for compatibility with older Linux distributions like CentOS 7.

How does this compare to Conda/Bioconda?

While Conda provides a comprehensive package management system, this project focuses specifically on:

  • Minimal dependencies (no Python required)
  • Static linking where possible
  • Specific glibc compatibility
  • Apple Silicon native support

Can I use these binaries in a Docker container?

Yes, these binaries are ideal for Docker containers as they have minimal dependencies and will work on any Linux system with glibc 2.17 or newer.

How do I request a new package?

Open an issue on GitHub with the package name, source URL, and any specific build requirements.

Logo

CBP’s logo conveys reliability and innovation through a clear, science‑forward motif. A dynamic DNA double helix reflects our bioinformatics focus and constant pairing, echoing consistent cross‑platform compatibility. A subtle packaging form symbolizes stewardship and delivery of binaries, tying the helix to practical distribution.

About

`cbp` - a Cross-platform Binary Package manager

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages