All Projects β†’ vpkg-project β†’ Vpkg

vpkg-project / Vpkg

Licence: mit
An alternative package manager for V.

Projects that are alternatives of or similar to Vpkg

Dnf
Package manager based on libdnf and libsolv. Replaces YUM.
Stars: ✭ 838 (+974.36%)
Mutual labels:  package-manager
Roboget
πŸ“¦Roboget automates the process of getting apps and downloads directly
Stars: ✭ 49 (-37.18%)
Mutual labels:  package-manager
Unityasync
Task and Async Utility Package for Unity. Start co-routines from anywhere.
Stars: ✭ 58 (-25.64%)
Mutual labels:  package-manager
Peru
a generic package manager, for including other people's code in your projects
Stars: ✭ 913 (+1070.51%)
Mutual labels:  package-manager
Qdd
Download JavaScript Dependencies, really fast
Stars: ✭ 47 (-39.74%)
Mutual labels:  package-manager
Jgo
Launch Java code from the CLI, installation-free. β˜•
Stars: ✭ 53 (-32.05%)
Mutual labels:  package-manager
Opam
opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
Stars: ✭ 905 (+1060.26%)
Mutual labels:  package-manager
Dnfdragora
dnfdragora is a dnf frontend based on libyui abstraction
Stars: ✭ 65 (-16.67%)
Mutual labels:  package-manager
Hexagon
A package manager for Hexo
Stars: ✭ 47 (-39.74%)
Mutual labels:  package-manager
Mpm
Simple Matlab package management inspired by pip
Stars: ✭ 56 (-28.21%)
Mutual labels:  package-manager
Qgis Mac Packager
Scripts for Official QGIS MacOS Packages
Stars: ✭ 37 (-52.56%)
Mutual labels:  package-manager
Unity Package Tools
A set of developer tools to make it easier to create and distribute packages for the native Unity Package Manager.
Stars: ✭ 44 (-43.59%)
Mutual labels:  package-manager
Github
a module for building, searching, installing, managing, and mining Stata packages from GitHub
Stars: ✭ 56 (-28.21%)
Mutual labels:  package-manager
Qpmx
A frontend for qpm, to provide source and build caching
Stars: ✭ 13 (-83.33%)
Mutual labels:  package-manager
Cmake Get
Get dependencies with cmake
Stars: ✭ 59 (-24.36%)
Mutual labels:  package-manager
Shrine
A TempleOS distro for heretics
Stars: ✭ 922 (+1082.05%)
Mutual labels:  package-manager
Npm Git Install
Clones and (re)installs packages from remote git repos. See npm/npm#3055
Stars: ✭ 49 (-37.18%)
Mutual labels:  package-manager
Biddle
Self-hosted application distribution
Stars: ✭ 66 (-15.38%)
Mutual labels:  package-manager
Bibliothecary
πŸ“” Libraries.io Package Manager Manifest Parsers
Stars: ✭ 62 (-20.51%)
Mutual labels:  package-manager
Vim Package Info
Vim plugin to quickly view info about the packages you use
Stars: ✭ 57 (-26.92%)
Mutual labels:  package-manager

vpkg Latest version Build status

vpkg is an alternative package manager written on V for V.

Features

Bringing the best of dependency management on V.

  • Decentralized. Download and use packages from other sources aside from VPM and the vpkg registry.
  • Easy to use. Set-up, use, and master the commands of vpkg CLI within minutes.
  • Fast. Runs perfectly on your potato PC up to the fastest supercomputers.
  • Interoperable. Supports v.mod, and .vpm.json for reading package manifests and managing dependencies.
  • Light. Weighs at less than 300kb. Perfect with devices running on tight storage or in low network conditions.
  • Reliable. Uses a lockfile mechanism to ensure that all your dependencies work across all of your machines.

Installation

Pre-built binaries

Install vpkg by downloading the pre-built binaries available found below the release notes of the latest release.

Building from Source

For 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.

git clone https://github.com/vpkg-project/vpkg.git
cd vpkg/
v -prod .

Running your own registry

Use the provided registry server 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.

Commands

Usage: vpkg <COMMAND> [ARGS...] [options]

COMMANDS

get [packages]                             Fetch and installs packages from the registry or the git repo.
help                                       Show this help message.
info                                       Show project's package information.
init                                       Create a package manifest file into the current directory. Defaults to "vpkg".
install                                    Read the package manifest file and installs the necessary packages.
link                                       Symlink current module/package to ".vmodules" folder.
migrate manifest                           Migrate manifest file to a specified format.
release                                    Release a new version of the module.
remove [packages]                          Remove packages
test                                       Test the current lib/app.
update                                     Update the packages.
unlink                                     Remove the symlink of current module/package from ".vmodules" folder.
version                                    Show the version of this program.

OPTIONS

--files [file1,file2]                      Specifiy other locations of test files (For "test" command)
--force                                    Force download the packages.
--format [vpkg|vmod]                       Specifiy file format used to init manifest. (For "migrate" and "init" commands)
--global, -g                               Install the modules/packages into the ".vmodules" folder.
--inc [major|minor|patch]                  Increment the selected version of the module/package. (For "release" command)
--state [state_name]                       Indicate the state of the release (alpha, beta, fix) (For "release" command)

vpkg API

Use 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.

// install.v
module main

import vpkg.api as vpkg // or import nedpals.vpkg.api as vpkg

fn main() {
    mut inst := vpkg.new('.')
    inst.run(['install'])

    os.system('rm ${os.executable()}')
}

$ v run install.v
Installing packages
Fetching nedpals.vargs

[email protected]
1 package was installed successfully.

Roadmap

  • ability to publish packages into VPM and the vpkg registry.
  • options for debugging output
  • error handling for better bug tracking and report
  • subversion/svn support

Copyright

(C) 2019 Ned Palacios

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].