Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.83.0

xpm

Gerenciador de pacotes universal para qualquer distribuição semelhante ao Unix, incluindo o macOS. Também suporte experimental para Windows.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
532
Curtidas
3
Pontos Pub
115

Instalar pacote

flutter pub add xpm

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O XPM é um gerenciador de pacotes universal projetado para sistemas semelhantes ao Unix, incluindo macOS, Linux e suporte experimental ao Windows. Ele permite a instalação, gestão e distribuição contínua de aplicativos em ambientes diversos. Construído com Flutter e Dart, o XPM simplifica o gerenciamento de dependências e a publicação de aplicativos, tornando-o ideal para desenvolvedores que visam múltiplas plataformas. Sua compatibilidade entre plataformas garante um comportamento consistente em Android, iOS, macOS, Windows e Linux. A ferramenta visa unificar os fluxos de trabalho de gerenciamento de pacotes no ecossistema Flutter.

Casos de uso

  • Implantação de aplicativos multiplataforma
  • Gerenciamento unificado de pacotes entre sistemas operacionais
  • Publicação simplificada de aplicativos
  • Automação do fluxo de desenvolvimento
  • Integração CI/CD
  • Resolução de dependência multiplataforma

Principais recursos

  • Compatibilidade universal entre sistemas semelhantes ao Unix
  • Suporte experimental para Windows
  • Arquitetura baseada em Flutter/Dart
  • Interface de linha de comando via `flutter pub add xpm`
  • Suporta Android, iOS, macOS, Windows e Linux
  • Empacotamento e distribuição de aplicativos simplificados

Indicado para

  • Desenvolvedores direcionados a múltiplos sistemas operacionais
  • Equipes usando pipelines de CI/CD
  • Editores de aplicativos cross-platform do Flutter
  • Mantenedores de ambiente em busca de ferramentas unificadas
  • Contribuidores de código aberto gerenciando projetos multiplataforma

Considerações

  • O suporte ao Windows ainda é experimental
  • Requer configuração do ambiente Flutter
  • Documentação disponível limitada
  • Pode exigir configuração específica da plataforma
  • Ainda não amplamente adotado em produção
  • Dependência de código-fonte hospedado no GitHub

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

xpm - uniX Package Manager

CI

A universal package manager for any unix-like distro including macOS. Rewritten in Rust for maximum performance and portability.

What is xpm?

XPM is a package manager for unix systems like Linux, BSD, MacOS, etc. It can be a wrapper for native package managers or a package manager itself by using its way of installing packages. For the list of packages available, see xpm-popular.

Our key values
  • Easy to install, update, upgrade, remove, search (and filter)
  • No questions asked, can run in a non-interactive way
  • Easy to create new installers or a full repository
  • Be agnostic, following unix standards and relying on very known tools
  • Include many popular distros, including macOS and Android (termux)
  • Prefer native pm way and falls back to xpm way

Features

  • Universal: Works on Linux (Arch, Debian, Ubuntu, Fedora, openSUSE), macOS, and Android/Termux
  • Fast: Built with Rust for maximum performance (~3MB static binary)
  • Unified: Search and install packages from XPM repositories AND native package managers
  • AUR Support: Full AUR helper support (paru, yay) on Arch Linux
  • Offline-first: Local database with cached package metadata
  • Script-based packages: Simple bash scripts for package installation

Supported Operating Systems & Package Managers

🎯 Integrated Support (Native PM with formatted search)
  • Debian/Ubuntu & derivatives → APT
  • Arch Linux → Pacman (with AUR support via Paru and Yay)

These systems get full native package manager integration with intelligent search, metadata extraction, and clean formatted output.

📜 Script-Based Support (via installers)

For other systems, XPM provides script-based installation through the xpm-popular repository:

Linux Distributions:

  • Fedora → DNF
  • openSUSE → Zypper
  • Clear Linux → swupd
  • Android (Termux) → pkg
  • Alpine Linux → via custom scripts

macOS → Homebrew (brew) - via scripts

Installation

Faster with curl
curl -fsSL install.cat/verseles/xpm
From Source
# Clone the repository
git clone https://github.com/verseles/xpm.git
cd xpm

# Build
cargo build --release

# Install to /usr/local/bin
sudo cp target/release/xpm /usr/local/bin/
From Cargo
cargo install --git https://github.com/verseles/xpm.git

Quick Start

# Check your system
xpm check

# Add the default repository (pulls from xpm-popular)
xpm refresh

# Search for packages (searches XPM + native PM)
xpm search neovim

# Install a package
xpm install neovim

# Remove a package
xpm remove neovim

Commands

Command Alias Description
search s Search for packages (XPM + native PM)
install i Install a package
remove rm Remove a package
refresh - Refresh package database
upgrade - Upgrade installed packages (coming soon)
get - Download a file
file - File operations (copy, move, delete, bin)
repo - Repository management
checksum hash Compute file checksums
shortcut - Create desktop shortcuts
log - Show installed packages
check - Check system configuration
make - Create a package (coming soon)
Search Examples
# Basic search
xpm search vim

# Multiple terms
xpm search text editor

# Limit results
xpm search rust --limit 10

# JSON output (for scripts)
xpm search go --json

Architecture

XPM is built as a Rust workspace with two crates:

  • xpm-core: Core library with database, OS abstraction, and package management
  • xpm-cli: Command-line interface
Key Components
  • Native DB: Fast, embedded database using native_db (redb backend)
  • Async I/O: Full async support with Tokio
  • Git integration: Uses git2 for repository management
  • Native PM integration: Seamless integration with apt, pacman, paru, yay

Creating Packages

Packages are bash scripts with metadata headers:

#!/bin/bash
readonly xNAME="my-package"
readonly xVERSION="1.0.0"
readonly xTITLE="My Package"
readonly xDESC="Description of my package"
readonly xURL="https://example.com"

xARCHS=(x86_64 aarch64)
xDEFAULT=(any)

install_any() {
    # Installation logic
    echo "Installing..."
}

remove_any() {
    # Removal logic
    echo "Removing..."
}

validate() {
    # Validation - return 0 if installed correctly
    which my-package >/dev/null
}

Save as my-package/my-package.bash in your repository.

Repository Structure

my-xpm-repo/
├── package1/
│   └── package1.bash
├── package2/
│   └── package2.bash
└── ...

Building from Source

# Development build
cargo build

# Release build (optimized)
cargo build --release

# Run tests
cargo test

# Run with verbose output
cargo run -- --verbose check

# Pre-commit checks (format + lint + test)
make precommit

Container Testing

Test xpm on different distributions using Podman:

# Build and test on Ubuntu
make test-ubuntu

# Build and test on Arch Linux
make test-arch

# Build and test all distros
make docker-test

# Clean container images
make docker-clean

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run cargo test and cargo clippy
  5. Submit a pull request

License

BSD-4-Clause

Credits

Built with ❤️ by Verseles

Categorias

Dependências

Lista de dependências 14 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.