# marble.js

## v3.x

- [Marble.js](https://marblejs.gitbook.io/docs/v3/master.md): Marble.js is a functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.
- [Installation](https://marblejs.gitbook.io/docs/v3/getting-started/installation.md)
- [Quick setup](https://marblejs.gitbook.io/docs/v3/getting-started/quick-setup.md)
- [Effects](https://marblejs.gitbook.io/docs/v3/http/effects.md): Effect is the main building block of the whole framework. It is just a function that returns a stream of events. Using its generic interface we can define API endpoints, event handlers or middlewares.
- [Middlewares](https://marblejs.gitbook.io/docs/v3/http/middlewares.md): In Marble.js, middlewares are streams of side-effects that can be composed and plugged-in to our request/event lifecycle to perform certain actions before reaching the designated Effect.
- [Routing](https://marblejs.gitbook.io/docs/v3/http/routing.md): Routing determines how an application responds to a client request to a particular endpoint, which is a path and a specific HTTP method (eg. GET, POST).
- [Errors](https://marblejs.gitbook.io/docs/v3/http/errors.md): Every Marble.js listener factory allows you to intercept outgoing errors via dedicated error$ handler.
- [Output](https://marblejs.gitbook.io/docs/v3/http/output.md): Every Marble.js listener factory allows you to intercept outgoing messages via dedicated output$ handler.
- [Context](https://marblejs.gitbook.io/docs/v3/http/context.md): DI is a very simple concept, which can be implemented in many different ways. Marble.js introduces a Context, which is an abstraction over Reader monad implementation of the DI system.
- [Advanced](https://marblejs.gitbook.io/docs/v3/http/advanced.md)
- [Logging](https://marblejs.gitbook.io/docs/v3/http/advanced/logging.md)
- [Validation](https://marblejs.gitbook.io/docs/v3/http/advanced/validation.md)
- [Server Events](https://marblejs.gitbook.io/docs/v3/http/advanced/server-events.md)
- [Streaming](https://marblejs.gitbook.io/docs/v3/http/advanced/streaming.md)
- [Continuous mode](https://marblejs.gitbook.io/docs/v3/http/advanced/modes.md)
- [Core concepts](https://marblejs.gitbook.io/docs/v3/messaging/core-concepts.md): The core idea of @marblejs/messaging module is focused around reacting to incoming events.
- [Events](https://marblejs.gitbook.io/docs/v3/messaging/core-concepts/events.md)
- [Effects](https://marblejs.gitbook.io/docs/v3/messaging/core-concepts/effects.md)
- [Microservices](https://marblejs.gitbook.io/docs/v3/messaging/microservices.md): Using a dedicated @marblejs/messaging module, Marble.js offers a robust and unified architecture for building event-based microservices.
- [AMQP (RabbitMQ)](https://marblejs.gitbook.io/docs/v3/messaging/microservices/rabbitmq.md): AMQP is an open standard application layer protocol for message-oriented communication, i.e. implemented by RabbitMQ message-broker.
- [Redis Pub/Sub](https://marblejs.gitbook.io/docs/v3/messaging/microservices/redis-pub-sub.md): Redis Pub/Sub implements the messaging system where the publishers sends the messages while the subscribers receive them.
- [CQRS](https://marblejs.gitbook.io/docs/v3/messaging/cqrs.md)
- [WebSockets](https://marblejs.gitbook.io/docs/v3/messaging/websockets.md): @marblejs/websockets module implements the RFC 6455 WebSocket protocol, providing full-duplex communication channels over a single TCP connection.
- [HTTP routes testing](https://marblejs.gitbook.io/docs/v3/testing/http-testing.md): @marblejs/testing is a tool agnostic module for testing Marble.js apps.
- [How does it glue together?](https://marblejs.gitbook.io/docs/v3/other/how-does-it-glue-together.md)
- [Migration guides](https://marblejs.gitbook.io/docs/v3/other/migration-guides.md): This chapter provides a set of guidelines to help you migrate across Marble.js major releases,
- [Migration from version 2.x](https://marblejs.gitbook.io/docs/v3/other/migration-guides/version-2.md): This chapter provides a set of guidelines to help you migrate from Marble.js version 2.x to the latest 3.x version.
- [Migration from version 1.x](https://marblejs.gitbook.io/docs/v3/other/migration-guides/version-1.md): This chapter provides a set of guidelines to help you migrate from Marble.js version 1.x to version 2.x.
- [API reference](https://marblejs.gitbook.io/docs/v3/other/api-reference.md): The complete API reference will be available soon.
- [core](https://marblejs.gitbook.io/docs/v3/other/api-reference/core.md): This section documents the complete @marblejs/core package API.
- [bindTo](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/bind.md): Binds injection token to lazy dependency.
- [bindEagerlyTo](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/bindeagerlyto.md): Binds injection token to eager dependency.
- [createEvent](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/createevent.md)
- [createServer](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/createserver.md): Creates HTTP server
- [combineRoutes](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/core-combineroutes.md): Combines routing for different Effects, prefixed with path passed as a first argument.
- [createContextToken](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/createinjectiontoken.md): A lookup token associated with a dependency provider, for use with the Marble.js context system.
- [EffectFactory](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/core-effectfactory.md): Set of factory functions for building router Effect.
- [r.pipe](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/r.pipe.md): HttpEffect route builder based on IxMonad
- [httpListener](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/core-httplistener.md): Starting point of every Marble.js application. It includes definitions of all middlewares and API effects.
- [operator: matchEvent](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/operator-matchevent.md): Effect operator for matching incoming events.
- [operator: use](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/operator-use.md): Effect operator for composing middleware directly inside stream pipeline.
- [operator: act](https://marblejs.gitbook.io/docs/v3/other/api-reference/core/operator-act.md)
- [messaging](https://marblejs.gitbook.io/docs/v3/other/api-reference/messaging.md): This section documents the complete @marblejs/messaging package API.
- [eventBus](https://marblejs.gitbook.io/docs/v3/other/api-reference/messaging/eventbus.md): Creates messaging client reader for LOCAL transport layer (Event Bus)
- [messagingClient](https://marblejs.gitbook.io/docs/v3/other/api-reference/messaging/messagingclient.md): Creates messaging client reader for given transport layer
- [createMicroservice](https://marblejs.gitbook.io/docs/v3/other/api-reference/messaging/createmicroservice.md): Creates and bootstraps microservice for given transport layer
- [reply](https://marblejs.gitbook.io/docs/v3/other/api-reference/messaging/reply.md): Constructs a reply-event
- [websockets](https://marblejs.gitbook.io/docs/v3/other/api-reference/websockets.md): This section documents the complete @marblejs/websockets package API.
- [webSocketListener](https://marblejs.gitbook.io/docs/v3/other/api-reference/websockets/websocketlistener.md)
- [operator: broadcast](https://marblejs.gitbook.io/docs/v3/other/api-reference/websockets/operator-broadcast.md)
- [operator: mapToServer](https://marblejs.gitbook.io/docs/v3/other/api-reference/websockets/operator-maptoserver.md)
- [middleware-multipart](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-multipart.md): A multipart/form-data middleware based on busboy library.
- [middleware-cors](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-cors.md): A CORS middleware for Marble.js
- [middleware-joi](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-joi.md): A Joi validation middleware for Marble.js.
- [middleware-jwt](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-jwt.md): HTTP requests authentication middleware for Marble.js based on JWT mechanism.
- [Token signing](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-jwt/token-creation.md): Besides the common things like token authorization, the middleware comes with handy functions responsible for token signing.
- [middleware-io](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-io.md)
- [middleware-logger](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-logger.md): HTTP request logger middleware for Marble.js
- [middleware-body](https://marblejs.gitbook.io/docs/v3/other/api-reference/middleware-body.md): HTTP request body parser middleware for Marble.js.
- [Style Guide](https://marblejs.gitbook.io/docs/v3/other/style-guide.md)
- [FAQ](https://marblejs.gitbook.io/docs/v3/other/faq.md)

## v2.x

- [Introduction](https://marblejs.gitbook.io/docs/v2/master.md)
- [Overview](https://marblejs.gitbook.io/docs/v2/overview.md): In this guide, we'll walk you through the basics of a Marble.js.
- [Getting started](https://marblejs.gitbook.io/docs/v2/overview/getting-started.md)
- [Effects](https://marblejs.gitbook.io/docs/v2/overview/effects.md)
- [Routing](https://marblejs.gitbook.io/docs/v2/overview/routing.md): Routing determines how an application responds to a client request to a particular endpoint, which is a path and a specific HTTP method (eg. GET, POST).
- [Middlewares](https://marblejs.gitbook.io/docs/v2/overview/middlewares.md)
- [Error handling](https://marblejs.gitbook.io/docs/v2/overview/error-handling.md)
- [How does it glue​ together?](https://marblejs.gitbook.io/docs/v2/overview/how-does-it-fit-together.md)
- [Advanced](https://marblejs.gitbook.io/docs/v2/advanced.md)
- [Context](https://marblejs.gitbook.io/docs/v2/advanced/context.md)
- [Server events](https://marblejs.gitbook.io/docs/v2/advanced/server-events.md)
- [Validation](https://marblejs.gitbook.io/docs/v2/advanced/validation.md)
- [Streaming](https://marblejs.gitbook.io/docs/v2/advanced/streaming.md)
- [Output interceptor](https://marblejs.gitbook.io/docs/v2/advanced/output.md)
- [WebSockets](https://marblejs.gitbook.io/docs/v2/websockets.md)
- [Getting started](https://marblejs.gitbook.io/docs/v2/websockets/getting-started.md)
- [Effects](https://marblejs.gitbook.io/docs/v2/websockets/effects.md)
- [Middlewares](https://marblejs.gitbook.io/docs/v2/websockets/middlewares.md)
- [Error handling](https://marblejs.gitbook.io/docs/v2/websockets/error-handling.md)
- [Connections handling](https://marblejs.gitbook.io/docs/v2/websockets/authorization.md)
- [core](https://marblejs.gitbook.io/docs/v2/api-reference/core.md): This section documents the complete @marblejs/core package API.
- [bindTo](https://marblejs.gitbook.io/docs/v2/api-reference/core/bind.md): Binds injection token to dependency.
- [createServer](https://marblejs.gitbook.io/docs/v2/api-reference/core/createserver.md): Marble.j abstraction over Node.js server creation with additional features.
- [combineRoutes](https://marblejs.gitbook.io/docs/v2/api-reference/core/core-combineroutes.md): Combines routing for different Effects, prefixed with path passed as a first argument.
- [createContextToken](https://marblejs.gitbook.io/docs/v2/api-reference/core/createinjectiontoken.md): A lookup token associated with a dependency provider, for use with the Marble.js context system.
- [EffectFactory](https://marblejs.gitbook.io/docs/v2/api-reference/core/core-effectfactory.md): Set of factory functions for building router Effect.
- [r.pipe](https://marblejs.gitbook.io/docs/v2/api-reference/core/r.pipe.md): HttpEffect route builder based on IxMonad
- [httpListener](https://marblejs.gitbook.io/docs/v2/api-reference/core/core-httplistener.md): Starting point of every Marble.js application. It includes definitions of all middlewares and API effects.
- [operator: matchEvent](https://marblejs.gitbook.io/docs/v2/api-reference/core/operator-matchevent.md): Effect operator for matching incoming events.
- [operator: use](https://marblejs.gitbook.io/docs/v2/api-reference/core/operator-use.md): Effect operator for composing middleware directly inside stream pipeline.
- [websockets](https://marblejs.gitbook.io/docs/v2/api-reference/websockets.md): This section documents the complete @marblejs/websockets package API.
- [webSocketListener](https://marblejs.gitbook.io/docs/v2/api-reference/websockets/websocketlistener.md)
- [operator: broadcast](https://marblejs.gitbook.io/docs/v2/api-reference/websockets/operator-broadcast.md)
- [operator: mapToServer](https://marblejs.gitbook.io/docs/v2/api-reference/websockets/operator-maptoserver.md)
- [middleware-body](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-body.md): HTTP request body parser middleware for Marble.js.
- [middleware-logger](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-logger.md): HTTP request logger middleware for Marble.js
- [middleware-io](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-io.md)
- [middleware-jwt](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-jwt.md): HTTP requests authentication middleware for Marble.js based on JWT mechanism.
- [Token signing](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-jwt/token-creation.md): Besides the common things like token authorization, the middleware comes with handy functions responsible for token signing.
- [middleware-joi](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-joi.md): A Joi validation middleware for Marble.js.
- [middleware-cors](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-cors.md): A CORS middleware for Marble.js
- [middleware-multipart](https://marblejs.gitbook.io/docs/v2/api-reference/middleware-multipart.md): A multipart/form-data middleware based on busboy library.
- [Migration from version 1.x](https://marblejs.gitbook.io/docs/v2/other/migration-guide.md): This chapter provides a set of guidelines to help you migrate from Marble.js version 1.x to the latest 2.x version.
- [Changelog](https://marblejs.gitbook.io/docs/v2/other/changelog.md)
- [FAQ](https://marblejs.gitbook.io/docs/v2/other/faq.md)

## v1.x

- [Introduction](https://marblejs.gitbook.io/docs/v1/master.md)
- [Basics](https://marblejs.gitbook.io/docs/v1/basics.md)
- [Getting started](https://marblejs.gitbook.io/docs/v1/basics/getting-started.md)
- [Effects](https://marblejs.gitbook.io/docs/v1/basics/effects.md)
- [Routing](https://marblejs.gitbook.io/docs/v1/basics/routing.md): Routing refers to determining how an application responds to a client request to a particular endpoint, which is a path and a specific HTTP method (eg. GET, POST).
- [Middlewares](https://marblejs.gitbook.io/docs/v1/basics/middlewares.md)
- [Error handling](https://marblejs.gitbook.io/docs/v1/basics/error-handling.md)
- [Available middlewares](https://marblejs.gitbook.io/docs/v1/available-middlewares.md)
- [middleware-logger](https://marblejs.gitbook.io/docs/v1/available-middlewares/logger.md): HTTP request logger middleware for Marble.js
- [middleware-body](https://marblejs.gitbook.io/docs/v1/available-middlewares/body.md): HTTP request body parser middleware for Marble.js.
- [middleware-joi](https://marblejs.gitbook.io/docs/v1/available-middlewares/joi.md): A Joi validation middleware for Marble.js.
- [middleware-jwt](https://marblejs.gitbook.io/docs/v1/available-middlewares/jwt.md): HTTP requests authentication middleware for Marble.js based on JWT mechanism.
- [Token signing](https://marblejs.gitbook.io/docs/v1/available-middlewares/jwt/token-creation.md): Besides the common things like token authorization, the middleware comes with handy functions responsible for token signing.
- [API reference](https://marblejs.gitbook.io/docs/v1/api-reference-old.md): This section documents the complete Marble.js API.
- [core: httpListener](https://marblejs.gitbook.io/docs/v1/api-reference-old/core-httplistener.md): Starting point of every Marble.js application. It includes definitions of all middlewares and API effects.
- [core: EffectFactory](https://marblejs.gitbook.io/docs/v1/api-reference-old/core-effectfactory.md): Set of factory functions for building router Effect.
- [core: combineRoutes](https://marblejs.gitbook.io/docs/v1/api-reference-old/core-combineroutes.md): Combines routing for different Effects, prefixed with path passed as a first argument.
- [operator: use](https://marblejs.gitbook.io/docs/v1/api-reference-old/use.md): Effect operator for composing middleware directly inside request pipeline.
- [FAQ](https://marblejs.gitbook.io/docs/v1/faq.md)
- [Changelog](https://marblejs.gitbook.io/docs/v1/changelog.md)

## v4.x

- [Marble.js](https://marblejs.gitbook.io/docs/readme.md): Marble.js is a functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.
- [Installation](https://marblejs.gitbook.io/docs/getting-started/installation.md)
- [Quick setup](https://marblejs.gitbook.io/docs/getting-started/quick-setup.md): The page describes a quick and basic usage of @marblejs/http module.
- [Effects](https://marblejs.gitbook.io/docs/http/effects.md): Effect is the main building block of the whole framework. It is just a function that returns a stream of events. Using its generic interface we can define API endpoints, event handlers or middlewares.
- [Middlewares](https://marblejs.gitbook.io/docs/http/middlewares.md): In Marble.js, middlewares are streams of side-effects that can be composed and plugged-in to our request/event lifecycle to perform certain actions before reaching the designated Effect.
- [Routing](https://marblejs.gitbook.io/docs/http/routing.md): Routing determines how an application responds to a client request to a particular endpoint, which is a path and a specific HTTP method (eg. GET, POST).
- [Errors](https://marblejs.gitbook.io/docs/http/errors.md): Every Marble.js listener factory allows you to intercept outgoing errors via dedicated error$ handler.
- [Output](https://marblejs.gitbook.io/docs/http/output.md): Every Marble.js listener factory allows you to intercept outgoing messages via dedicated output$ handler.
- [Context](https://marblejs.gitbook.io/docs/http/context.md): DI is a very simple concept, which can be implemented in many different ways. Marble.js introduces a Context, which is an abstraction over Reader monad implementation of the DI system.
- [Advanced](https://marblejs.gitbook.io/docs/http/advanced.md)
- [Logging](https://marblejs.gitbook.io/docs/http/advanced/logging.md)
- [Validation](https://marblejs.gitbook.io/docs/http/advanced/validation.md)
- [Server Events](https://marblejs.gitbook.io/docs/http/advanced/server-events.md)
- [Streaming](https://marblejs.gitbook.io/docs/http/advanced/streaming.md)
- [Continuous mode](https://marblejs.gitbook.io/docs/http/advanced/modes.md)
- [Core concepts](https://marblejs.gitbook.io/docs/messaging/core-concepts.md): The core idea of @marblejs/messaging module is focused around reacting to incoming events.
- [Events](https://marblejs.gitbook.io/docs/messaging/core-concepts/events.md)
- [Effects](https://marblejs.gitbook.io/docs/messaging/core-concepts/effects.md)
- [Microservices](https://marblejs.gitbook.io/docs/messaging/microservices.md): Using a dedicated @marblejs/messaging module, Marble.js offers a robust and unified architecture for building event-based microservices.
- [AMQP (RabbitMQ)](https://marblejs.gitbook.io/docs/messaging/microservices/rabbitmq.md): AMQP is an open standard application layer protocol for message-oriented communication, i.e. implemented by RabbitMQ message-broker.
- [Redis Pub/Sub](https://marblejs.gitbook.io/docs/messaging/microservices/redis-pub-sub.md): Redis Pub/Sub implements the messaging system where the publishers sends the messages while the subscribers receive them.
- [CQRS](https://marblejs.gitbook.io/docs/messaging/cqrs.md)
- [WebSockets](https://marblejs.gitbook.io/docs/messaging/websockets.md): @marblejs/websockets module implements the RFC 6455 WebSocket protocol, providing full-duplex communication channels over a single TCP connection.
- [HTTP routes testing](https://marblejs.gitbook.io/docs/testing/http-testing.md): @marblejs/testing is a tool agnostic module for testing Marble.js apps.
- [How does it glue together?](https://marblejs.gitbook.io/docs/other/how-does-it-glue-together.md)
- [Migration guides](https://marblejs.gitbook.io/docs/other/migration-guides.md): This chapter provides a set of guidelines to help you migrate across Marble.js major releases,
- [Migration from version 3.x](https://marblejs.gitbook.io/docs/other/migration-guides/version-3.md): This chapter provides a set of guidelines to help you migrate from Marble.js version 3.x to the latest 4.x version.
- [Migration from version 2.x](https://marblejs.gitbook.io/docs/other/migration-guides/version-2.md): This chapter provides a set of guidelines to help you migrate from Marble.js version 2.x to the latest 3.x version.
- [Migration from version 1.x](https://marblejs.gitbook.io/docs/other/migration-guides/version-1.md): This chapter provides a set of guidelines to help you migrate from Marble.js version 1.x to version 2.x.
- [API reference](https://marblejs.gitbook.io/docs/other/api-reference.md): The complete API reference will be available soon.
- [@marblejs/core](https://marblejs.gitbook.io/docs/other/api-reference/core.md): This section documents the complete @marblejs/core package API.
- [bindTo](https://marblejs.gitbook.io/docs/other/api-reference/core/bind.md): Binds injection token to lazy dependency.
- [bindEagerlyTo](https://marblejs.gitbook.io/docs/other/api-reference/core/bindeagerlyto.md): Binds injection token to eager dependency.
- [createEvent](https://marblejs.gitbook.io/docs/other/api-reference/core/createevent.md)
- [createContextToken](https://marblejs.gitbook.io/docs/other/api-reference/core/createinjectiontoken.md): A lookup token associated with a dependency provider, for use with the Marble.js context system.
- [operator: matchEvent](https://marblejs.gitbook.io/docs/other/api-reference/core/operator-matchevent.md): Effect operator for matching incoming events.
- [operator: use](https://marblejs.gitbook.io/docs/other/api-reference/core/operator-use.md): Effect operator for composing middleware directly inside stream pipeline.
- [operator: act](https://marblejs.gitbook.io/docs/other/api-reference/core/operator-act.md)
- [@marblejs/http](https://marblejs.gitbook.io/docs/other/api-reference/marblejs-http.md)
- [httpListener](https://marblejs.gitbook.io/docs/other/api-reference/marblejs-http/core-httplistener.md): Starting point of every Marble.js application. It includes definitions of all middlewares and API effects.
- [r.pipe](https://marblejs.gitbook.io/docs/other/api-reference/marblejs-http/r.pipe.md): HttpEffect route builder based on IxMonad
- [combineRoutes](https://marblejs.gitbook.io/docs/other/api-reference/marblejs-http/core-combineroutes.md): Combines routing for different Effects, prefixed with path passed as a first argument.
- [createServer](https://marblejs.gitbook.io/docs/other/api-reference/marblejs-http/createserver.md): Creates HTTP server
- [@marblejs/messaging](https://marblejs.gitbook.io/docs/other/api-reference/messaging.md): This section documents the complete @marblejs/messaging package API.
- [eventBus](https://marblejs.gitbook.io/docs/other/api-reference/messaging/eventbus.md): Creates messaging client reader for LOCAL transport layer (Event Bus)
- [messagingClient](https://marblejs.gitbook.io/docs/other/api-reference/messaging/messagingclient.md): Creates messaging client reader for given transport layer
- [createMicroservice](https://marblejs.gitbook.io/docs/other/api-reference/messaging/createmicroservice.md): Creates and bootstraps microservice for given transport layer
- [reply](https://marblejs.gitbook.io/docs/other/api-reference/messaging/reply.md): Constructs a reply-event
- [@marblejs/websockets](https://marblejs.gitbook.io/docs/other/api-reference/websockets.md): This section documents the complete @marblejs/websockets package API.
- [webSocketListener](https://marblejs.gitbook.io/docs/other/api-reference/websockets/websocketlistener.md)
- [operator: broadcast](https://marblejs.gitbook.io/docs/other/api-reference/websockets/operator-broadcast.md)
- [operator: mapToServer](https://marblejs.gitbook.io/docs/other/api-reference/websockets/operator-maptoserver.md)
- [@marblejs/middleware-multipart](https://marblejs.gitbook.io/docs/other/api-reference/middleware-multipart.md): A multipart/form-data middleware based on busboy library.
- [@marblejs/middleware-cors](https://marblejs.gitbook.io/docs/other/api-reference/middleware-cors.md): A CORS middleware for Marble.js
- [@marblejs/middleware-io](https://marblejs.gitbook.io/docs/other/api-reference/middleware-io.md)
- [@marblejs/middleware-logger](https://marblejs.gitbook.io/docs/other/api-reference/middleware-logger.md): HTTP request logger middleware for Marble.js
- [@marblejs/middleware-body](https://marblejs.gitbook.io/docs/other/api-reference/middleware-body.md): HTTP request body parser middleware for Marble.js.
- [@marblejs-contrib/middleware-jwt](https://marblejs.gitbook.io/docs/other/api-reference/middleware-jwt.md): HTTP requests authentication middleware for Marble.js based on JWT mechanism.
- [Token signing](https://marblejs.gitbook.io/docs/other/api-reference/middleware-jwt/token-creation.md): Besides the common things like token authorization, the middleware comes with handy functions responsible for token signing.
- [@marblejs-contrib/middleware-joi](https://marblejs.gitbook.io/docs/other/api-reference/middleware-joi.md): A Joi validation middleware for Marble.js.
- [Style Guide](https://marblejs.gitbook.io/docs/other/style-guide.md)
- [FAQ](https://marblejs.gitbook.io/docs/other/faq.md)
