Peck is the official package manager for the Pome programming language. Designed to be robust, usable, and secure, Peck streamlines the process of discovering, installing, updating, and managing Pome packages and their dependencies.
- Secure Package Management: Install packages from a curated index with verified Git commit hashes, ensuring integrity and protection against malicious code injection.
- Flexible Installation Sources:
- Install from the official remote package index.
- Install directly from Git repository URLs (with explicit security warnings).
- Install from local file system paths.
- Virtual Environment Integration: Seamlessly integrates with Pome's
.pome_envvirtual environments for project-specific dependencies. - Global Installation Support: Option to install packages globally on your system.
- Editable Installs: Facilitates local development by allowing packages to be installed as symbolic links.
- Dependency Resolution: Manages package dependencies defined in
pome_pkg.json. - Package Search & Listing: Easily find and list installed or available packages.
- Package Initialization: Generate boilerplate
pome_pkg.jsonfiles for new Pome projects.
To build and install Peck on your system, follow these steps:
-
Clone the Peck repository:
git clone https://github.com/Pomilon/Peck cd Peck -
Make the installation script executable:
chmod +x install.sh
-
Run the installation script:
./install.sh
The script will guide you through building Peck and offer to install the peck executable to /usr/local/bin (which requires sudo).
Once installed, you can use the peck command from your terminal.
For a comprehensive guide on all available commands and options, refer to the Usage Documentation.
Quick Examples:
-
Get help:
peck --help
-
Initialize a new Pome package:
peck init
-
Install a package (e.g.,
my_library) from the index:peck install my_library
-
List installed packages:
peck list
For developers creating Pome packages, the Pome Package Specification defines the strict anatomy, metadata (pome_pkg.json), import resolution algorithm, and native extension ABI. This ensures compatibility and proper integration with the Pome interpreter and Peck package manager.
I welcome contributions to Peck! Please refer to the project's issue tracker for ongoing tasks and submit pull requests with your enhancements.
This project is licensed under the MIT License.