Skip to content

Latest commit

 

History

History
163 lines (120 loc) · 4.22 KB

File metadata and controls

163 lines (120 loc) · 4.22 KB

English | Українська | Русский | Türkçe | Deutsch | Français | Português (BR) | 한국어 | বাংলা | Español | Italiano | Română | Polski | 简体中文 | 正體中文 | 日本語 | हिंदी | Dutch

Let's make Bruno better, together!!

We are happy that you are looking to improve Bruno. Below are the guidelines to run Bruno on your computer.

Technology Stack

Bruno is built using React and Electron.

Libraries we use

  • CSS - Tailwind
  • Code Editors - Codemirror
  • State Management - Redux
  • Icons - Tabler Icons
  • Forms - formik
  • Schema Validation - Yup
  • Request Client - axios
  • Filesystem Watcher - chokidar
  • i18n - i18next

Important

You would need Node v22.x or the latest LTS version. We use npm workspaces in the project

Development

Bruno is a desktop app. Below are the instructions to run Bruno.

Note: We use React for the frontend and rsbuild for build and dev server.

Install Dependencies

# use nodejs 22 version
nvm use

# install deps
npm i --legacy-peer-deps

Local Development

Build packages

Option 1
# build packages
npm run build:graphql-docs
npm run build:bruno-query
npm run build:bruno-common
npm run build:bruno-converters
npm run build:bruno-requests

# bundle js sandbox libraries
npm run sandbox:bundle-libraries --workspace=packages/bruno-js
Option 2
# install dependencies and setup
npm run setup

Run the app

Option 1
# run react app (terminal 1)
npm run dev:web

# run electron app (terminal 2)
npm run dev:electron
Option 2
# run electron and react app concurrently
npm run dev

Customize Electron userData path

If ELECTRON_APP_NAME env-variable is present and its development mode, then the appName and userData path is modified accordingly.

e.g.

ELECTRON_APP_NAME=bruno-dev npm run dev:electron

This doesn't change the name of the window or the names in lot of other places, only the name used by Electron internally.

Troubleshooting

You might encounter a Unsupported platform error when you run npm install. To fix this, you will need to delete node_modules and package-lock.json and run npm install. This should install all the necessary packages needed to run the app.

# Delete node_modules in sub-directories
find ./ -type d -name "node_modules" -print0 | while read -d $'\0' dir; do
  rm -rf "$dir"
done

# Delete package-lock in sub-directories
find . -type f -name "package-lock.json" -delete

Testing

# run bruno-schema tests
npm run test --workspace=packages/bruno-schema

# run bruno-query tests
npm run test --workspace=packages/bruno-query

# run bruno-common tests
npm run test --workspace=packages/bruno-common

# run bruno-converters tests
npm run test --workspace=packages/bruno-converters

# run bruno-app tests
npm run test --workspace=packages/bruno-app

# run bruno-electron tests
npm run test --workspace=packages/bruno-electron

# run bruno-lang tests
npm run test --workspace=packages/bruno-lang

# run bruno-toml tests
npm run test --workspace=packages/bruno-toml

# run tests over all workspaces
npm test --workspaces --if-present

Raising Pull Requests

  • Please keep the PR's small and focused on one thing
  • Please follow the format of creating branches
    • feature/[feature name]: This branch should contain changes for a specific feature
      • Example: feature/dark-mode
    • bugfix/[bug name]: This branch should contain only bug fixes for a specific bug
      • Example bugfix/bug-1