# Getting Started
## Dependencies
Before you can start working on Burrow, you'll need to install some dependencies. They are different for each platform:
Linux
1. Install **rustup** using the instructions on the [website](https://rustup.rs/):
```bash
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
2. Install **Visual Studio Code** from the [website](https://code.visualstudio.com/#alt-downloads), [Snap Store](https://snapcraft.io/code), or your package manager of choice.
macOS
1. Install **rustup** using the instructions on the [website](https://rustup.rs/):
```bash
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
2. Download and install **Visual Studio Code** from the [website](https://code.visualstudio.com/#alt-downloads), or by using brew:
```
brew install --cask visual-studio-code
```
3. Download and Install **Xcode** from the [App Store](https://apps.apple.com/us/app/xcode/id497799835) or the [Apple Developer](https://developer.apple.com/downloads) website.
4. Make sure the _"current"_ version of Xcode matches the one you are using:
```
$ xcode-select -p
```
If the output is not the version of Xcode you just installed, run the following command to switch to the new version:
```
$ sudo xcode-select -s {PATH_TO_XCODE}
```
Windows
1. Download **Visual Studio** community edition from the [website](https://visualstudio.microsoft.com/vs/). Install the components for "Desktop Development with C++"
2. Install [**Visual Studio Code**](https://apps.microsoft.com/store/detail/visual-studio-code/XP9KHM4BK9FZ7Q), [**PowerShell**](https://apps.microsoft.com/store/detail/powershell/9MZ1SNWT0N5D) and [**Windows Terminal**](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701) from the Microsoft Store
3. Open Windows Terminal and use [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/) to install **git**, **LLVM** and **rustup**:
```posh
winget install Git.Git
winget install LLVM.LLVM
winget install Rustlang.Rustup
```
4. Install Rust using rustup:
```posh
rustup toolchain install stable-msvc
```
## Building
1. Clone the repository:
```
git clone git@github.com:hackclub/burrow.git
```
2. Open the `burrow` folder in Visual Studio Code:
```
code burrow
```
3. Install the Visual Studio Code extensions [**rust-analyzer**](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) and [**CodeLLDB**](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb). You should get a suggestion to do this automatically:
4. Compile burrow in Visual Studio Code by selecting `Terminal -> Run Build Task`
## Running
Command Line
You can run burrow on the command line with cargo:
```
cargo run
```
Cargo will ask for your password because burrow needs permission in order to create a tunnel.
Visual Studio Code
You can debug the Rust program inside of Visual Studio using the **Run and Debug** tab.
**_This does not work fully yet_**. Visual Studio Code does not have a way to debug programs with administrative privileges.
iOS or macOS
You can run the Burrow app on iOS or macOS using **Xcode**.
You will need to be logged in with your Apple ID, and it should be a part of **The Hack Foundation** team:
If your Apple ID is not a part of The Hack Foundation team, ask the Slack channel for assistance.
You should now be able to run the app by opening `Apple/Burrow.xcodeproj` in Xcode, selecting the **App** scheme and clicking **Run**.