MadGet is a comprehensive package management ecosystem built using the Go programming language. It comprises three main components:
CLI (madget): Facilitates package publishing and installation workflows.
Registry API: Handles package metadata, version resolution, and tarball delivery.
Metadata Storage: Supports both PostgreSQL and SQLite, with SQLite being the default for local development.
The project is structured with distinct modules for the CLI, registry API, version resolution, integrity checks, database migrations, and deployment configurations. It utilizes MadGet.xml for package manifests, replacing traditional formats like package.json.
Key features include:
Semantic versioning support for package resolution.
SHA256 checksums for integrity verification.
Local development setup with SQLite and Docker Compose options for PostgreSQL.
Example package for demonstrating publish and install functionalities.
Future development plans include enhancing dependency graph persistence, implementing token issuance and lockfile generation, and adding end-to-end tests for a robust publish/resolve/install flow.
Built with