# raco: Racket's Package Management System (and More)

By Corey J. Gallon · 2024-10-06 · https://gallon.me/raco-is-rackets-package-management-system-among-other-things.html

---

In the Racket programming language, `raco` is a command-line tool used to interact with Racket's package management system, run tests, build documentation, and perform other tasks related to Racket development. It's a versatile utility that automates various tasks in Racket projects.

Some of the common uses of `raco` include:

- **Package Management**: You can install, remove, or update Racket packages using commands like:
    
```bash
raco pkg install <package-name>
raco pkg remove <package-name>
raco pkg update <package-name>

```
    
- **Compiling Racket Programs**: `raco` can compile Racket files to bytecode or even to an executable:

```bash
raco make <file.rkt>

```

- **Running Tests**: Racket includes support for automated tests, and you can run tests using `raco test`:

```bash
raco test <file.rkt>

```
    
- **Building Documentation**: Racket supports generating documentation, and `raco` can be used to build the documentation for a package:
    
```bash
raco docs <package-name>

```
    
- **Creating Executables**: You can use `raco exe` to create standalone executables from Racket code:
    
```bash
raco exe <file.rkt>

```
    

`raco` simplifies project management by providing a unified interface for all these tasks, making it essential for anyone working on Racket projects.
