About

Mousse is an open source, MIT licensed project, maintained on a volunteer basis. It draws heavily on its peers, such as Express, Fastify and Koa. Every bug report, idea and pull request helps it grow.

Support

Ways to help

Report a bug

Something breaks, or behaves unlike the docs say ? An issue with a minimal reproduction is the most useful help.

Open an issue

Suggest a feature

A missing module, a rough API, a use case Mousse does not cover yet : describe it in an issue before writing code.

Browse issues

Improve the docs

This site is built from the README and the docs folder. A typo fix or a clearer example is a welcome pull request.

docs/

Find your way around

The repository is a pnpm monorepo driven by turbo :

packages/mousse
The framework, with its unit tests
apps/examples
Runnable examples and the integration tests
apps/benchmarks
Benchmarks against express, fastify and raw µWebSockets.js
apps/site
This site, built from the README and docs/
pnpm example            # list runnable examples
pnpm example schemas    # run one on http://localhost:8080
pnpm site               # run this site locally

Contributing code

  1. Fork the repository and create a branch from main.
    git clone https://github.com/<you>/mousse
    cd mousse && pnpm install
    git checkout -b my-change
  2. Make your change, with tests : an integration test in apps/examples/tests for a new feature, a unit test in packages/mousse/tests for pure logic. Then check everything locally.
    pnpm build && pnpm check-types && pnpm test
  3. Record your change with a changeset. It describes the change and the version bump it deserves, and ends up in the changelog. Answer the prompts, then commit the generated .changeset/*.md file with your change.
    pnpm changeset
  4. Open a pull request against main. CI runs the build, the types and the full test suites.