{"id":13823026,"url":"https://github.com/vpkg-project/vpkg","last_synced_at":"2025-05-16T17:33:01.140Z","repository":{"id":52822389,"uuid":"194876071","full_name":"vpkg-project/vpkg","owner":"vpkg-project","description":"An alternative package manager for V.","archived":false,"fork":false,"pushed_at":"2021-09-20T03:24:44.000Z","size":247,"stargazers_count":115,"open_issues_count":7,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-19T23:37:38.048Z","etag":null,"topics":["package-manager","registry-server","registry-vpkg","v","vlang","vpkg","vpkg-registry","vpm"],"latest_commit_sha":null,"homepage":"https://vpkg-project.github.io","language":"V","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vpkg-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"custom":["https://www.buymeacoffee.com/slapden"]}},"created_at":"2019-07-02T14:10:16.000Z","updated_at":"2024-07-13T17:27:15.000Z","dependencies_parsed_at":"2022-08-17T15:40:30.839Z","dependency_job_id":null,"html_url":"https://github.com/vpkg-project/vpkg","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpkg-project%2Fvpkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpkg-project%2Fvpkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpkg-project%2Fvpkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vpkg-project%2Fvpkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vpkg-project","download_url":"https://codeload.github.com/vpkg-project/vpkg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254576788,"owners_count":22094455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["package-manager","registry-server","registry-vpkg","v","vlang","vpkg","vpkg-registry","vpm"],"created_at":"2024-08-04T08:02:30.663Z","updated_at":"2025-05-16T17:33:00.798Z","avatar_url":"https://github.com/vpkg-project.png","language":"V","funding_links":["https://www.buymeacoffee.com/slapden"],"categories":["V"],"sub_categories":[],"readme":"# vpkg ![Latest version][githubBadge] ![Build status][workflowBadge]\r\nvpkg is an alternative package manager written on [V](https://github.com/vlang/v) for V.\r\n\r\n## Features\r\nBringing the best of dependency management on V.\r\n- **Decentralized.** Download and use packages from other sources aside from VPM and the vpkg registry.\r\n- **Easy to use.** Set-up, use, and master the commands of vpkg CLI within minutes.\r\n- **Fast.** Runs perfectly on your potato PC up to the fastest supercomputers.\r\n- **Interoperable.** Supports `v.mod`, and `.vpm.json` for reading package manifests and managing dependencies.\r\n- **Light.** Weighs at less than 300kb. Perfect with devices running on tight storage or in low network conditions.\r\n- **Reliable.** Uses a lockfile mechanism to ensure that all your dependencies work across all of your machines.\r\n\r\n## Installation\r\n### Pre-built binaries\r\nInstall vpkg by downloading the pre-built binaries available found below the release notes of the [latest release](https://github.com/vpkg-project/vpkg/releases).\r\n\r\n### Building from Source\r\nFor those platforms which aren't included in the available pre-built binaries or would like to compile it by yourself, just clone this repository and build directly with the V compiler with the `-prod` flag.\r\n```\r\ngit clone https://github.com/vpkg-project/vpkg.git\r\ncd vpkg/\r\nv -prod .\r\n```\r\n\r\n## Running your own registry\r\nUse the provided [registry server template](https://github.com/vpkg-project/registry-template) to start running your own registry server. Just modify `registry.json` and use any HTTP or web library of your choice to get up and running.\r\n\r\n## Commands\r\n```\r\nUsage: vpkg \u003cCOMMAND\u003e [ARGS...] [options]\r\n\r\nCOMMANDS\r\n\r\nget [packages]                             Fetch and installs packages from the registry or the git repo.\r\nhelp                                       Show this help message.\r\ninfo                                       Show project's package information.\r\ninit                                       Create a package manifest file into the current directory. Defaults to \"vpkg\".\r\ninstall                                    Read the package manifest file and installs the necessary packages.\r\nlink                                       Symlink current module/package to \".vmodules\" folder.\r\nmigrate manifest                           Migrate manifest file to a specified format.\r\nrelease                                    Release a new version of the module.\r\nremove [packages]                          Remove packages\r\ntest                                       Test the current lib/app.\r\nupdate                                     Update the packages.\r\nunlink                                     Remove the symlink of current module/package from \".vmodules\" folder.\r\nversion                                    Show the version of this program.\r\n\r\nOPTIONS\r\n\r\n--files [file1,file2]                      Specifiy other locations of test files (For \"test\" command)\r\n--force                                    Force download the packages.\r\n--format [vpkg|vmod]                       Specifiy file format used to init manifest. (For \"migrate\" and \"init\" commands)\r\n--global, -g                               Install the modules/packages into the \".vmodules\" folder.\r\n--inc [major|minor|patch]                  Increment the selected version of the module/package. (For \"release\" command)\r\n--state [state_name]                       Indicate the state of the release (alpha, beta, fix) (For \"release\" command)\r\n```\r\n\r\n## vpkg API\r\nUse vpkg as a module that you can use to integrate into your own programs. Create your own VSH scripts, automated installation, and more without needing a separate CLI program.\r\n\r\n```v\r\n// install.v\r\nmodule main\r\n\r\nimport vpkg.api as vpkg // or import nedpals.vpkg.api as vpkg\r\n\r\nfn main() {\r\n    mut inst := vpkg.new('.')\r\n    inst.run(['install'])\r\n\r\n    os.system('rm ${os.executable()}')\r\n}\r\n\r\n```\r\n\r\n```sh\r\n$ v run install.v\r\nInstalling packages\r\nFetching nedpals.vargs\r\n\r\nvargs@fc193513733c2ed99467f5d903a824ea9087ed52\r\n1 package was installed successfully.\r\n```\r\n\r\n## Roadmap\r\n- ability to publish packages into VPM and the vpkg registry.\r\n- options for debugging output\r\n- error handling for better bug tracking and report\r\n- subversion/svn support\r\n\r\n\r\n## Copyright\r\n(C) 2019 [Ned Palacios](https://github.com/nedpals)\r\n\r\n[githubBadge]: https://img.shields.io/github/v/release/vpkg-project/vpkg?include_prereleases\r\n[workflowBadge]: https://img.shields.io/github/workflow/status/vpkg-project/vpkg/CI\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvpkg-project%2Fvpkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvpkg-project%2Fvpkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvpkg-project%2Fvpkg/lists"}