# Important
> pesde is currently being rewritten, and this new version is not yet ready for use. You can find the stable version in the `master` branch.
pesde is a package manager for Roblox that is designed to be feature-rich and easy to use.
Currently, pesde is in a very early stage of development, but already supports the following features:
- Managing dependencies
- Re-exporting types
- `bin` exports (ran with Lune)
- Patching packages
- Downloading packages from Wally registries
## Installation
pesde can be installed from GitHub Releases. You can find the latest
release [here](https://github.com/daimond113/pesde/releases).
It can also be installed by using [Aftman](https://github.com/LPGhatguy/aftman).
## Usage
pesde is designed to be easy to use. Here are some examples of how to use it:
```sh
# Initialize a new project
pesde init
# Install a package
pesde add daimond113/pesde@0.1.0
# Remove a package
pesde remove daimond113/pesde
# List outdated packages
pesde outdated
# Install all packages
pesde install
# Search for a package
pesde search pesde
# Run a binary
pesde run daimond113/pesde
# Run a binary with arguments
pesde run daimond113/pesde -- --help
```
## Preparing to publish
To publish you must first initialize a new project with `pesde init`. You can then use the other commands to manipulate
dependencies, and edit the file
manually to add metadata such as authors, description, and license.
> **Warning**
> The pesde CLI respects the `.gitignore` file and will not include files that are ignored. The `.pesdeignore` file has
> more power over the `.gitignore` file, so you can unignore files by prepending a `!` to the pattern.
The pesde CLI supports the `.pesdeignore` file, which is similar to `.gitignore`. It can be used to include or exclude
files from the package.
## Documentation
For more information, you can check the [documentation](https://pesde.daimond113.com/docs).
## Registry
The main pesde registry is hosted on [fly.io](https://fly.io). You can find it at https://registry.pesde.daimond113.com.
### Self-hosting
You can self-host the registry by using the default implementation in the `registry` folder, or by creating your own
implementation. The API
must be compatible with the default implementation, which can be found in the `main.rs` file.
## Previous art
pesde is heavily inspired by [npm](https://www.npmjs.com/), [pnpm](https://pnpm.io/), [Wally](https://wally.run),
and [Cargo](https://doc.rust-lang.org/cargo/).