# +Modules

BoxLang+/Starter includes a curated set of modules that extend the platform with integration points, productivity accelerators, and enterprise-grade features. Each module is versioned independently and installed on demand.

## 🔍 Module Index

| Module                                                      | Purpose                                                                                                                                      |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| [`bx-couchbase`](/boxlang-+-++/modules/bx-couchbase.md)     | Distributed caching and NoSQL document storage via Couchbase.                                                                                |
| [`bx-csv`](/boxlang-+-++/modules/bx-csv.md)                 | Streaming CSV parsing and generation for large datasets.                                                                                     |
| [`bx-ldap`](/boxlang-+-++/modules/bx-ldap.md)               | Full-featured LDAP directory access for BoxLang applications.                                                                                |
| [`bx-mcp`](/boxlang-+-++/modules/bx-mcp.md)                 | Model Context Protocol server for runtime diagnostics, introspection, and operational automation.                                            |
| [`bx-meilisearch`](/boxlang-+-++/modules/bx-meilisearch.md) | [Meilisearch](https://www.meilisearch.com/) integration for fast full-text search in BoxLang applications.                                   |
| [`bx-pdf`](/boxlang-+-++/modules/bx-plus-pdf.md)            | PDF generation and manipulation for documents, reports, and forms, including [licensed functionality](/boxlang-+-++/modules/bx-plus-pdf.md). |
| [`bx-plus`](/boxlang-+-++/modules/bx-plus.md)               | Subscription bootstrap, entitlement validation, and shared utilities.                                                                        |
| [`bx-redis`](/boxlang-+-++/modules/bx-redis.md)             | Redis-backed caching, data structures, and pub/sub messaging.                                                                                |
| [`bx-rest-compat`](/boxlang-+-++/modules/rest-compat-+.md)  | REST component compatibility and routing translation for legacy framework-less REST architectures.                                           |
| [`bx-soap-compat`](/boxlang-+-++/modules/soap-compat-+.md)  | SOAP compatibility layer for generating, parsing, and communicating with web services.                                                       |
| [`bx-spreadsheet`](/boxlang-+-++/modules/bx-spreadsheet.md) | Read, write, and style spreadsheet documents (XLSX).                                                                                         |

## 🚀 Installation Pattern

All premium modules follow a consistent installation workflow using either CommandBox / BoxLang CLI. Our recommended approach is CommandBox as it takes care of all dependencies.

### Via CommandBox CLI

```bash
# Install bx-plus as a dependency for license management and the target module.
box install <module-name>
```

### Via BoxLang OS Binary

```bash
# Install bx-plus module first to enable license management
install-bx-module bx-plus
# Then install other modules
install-bx-module <module-name>
```

After installation, modules register themselves automatically or provide a simple activation step described in their documentation.

## 🧪 Common Usage Flow

1. Install module.
2. Configure via `boxlang.json`, environment variables, or runtime API. Each module can have different configuration needs; refer to individual module docs for specifics.
3. Inject or call provided services/components.
4. Handle errors using standard exception management patterns.

## 📁 Module Docs

{% content-ref url="<https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-framework/boxlang-plus/modules/bx-csv.md>" %}
<https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-framework/boxlang-plus/modules/bx-csv.md>
{% endcontent-ref %}

{% content-ref url="/pages/6C1iqibIZeeOkhNwZ8pb" %}
[Couchbase +](/boxlang-+-++/modules/bx-couchbase.md)
{% endcontent-ref %}

{% content-ref url="/pages/Afm0q0pnkn9RHqgVYxa0" %}
[LDAP +](/boxlang-+-++/modules/bx-ldap.md)
{% endcontent-ref %}

{% content-ref url="/pages/CWoJNisXXjrhrBk1PLt2" %}
[MCP +](/boxlang-+-++/modules/bx-mcp.md)
{% endcontent-ref %}

{% content-ref url="/pages/XgEGjIaLVnXWP7YThMAw" %}
[Plus Core](/boxlang-+-++/modules/bx-plus.md)
{% endcontent-ref %}

{% content-ref url="<https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-framework/boxlang-plus/modules/bx-plus-pdf.md>" %}
<https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-framework/boxlang-plus/modules/bx-plus-pdf.md>
{% endcontent-ref %}

{% content-ref url="/pages/S4F4AHJEeX8fPh5x78KE" %}
[Redis +](/boxlang-+-++/modules/bx-redis.md)
{% endcontent-ref %}

{% content-ref url="/pages/gjSqf4e5acJhaS89QZ8f" %}
[Spreadsheet +](/boxlang-+-++/modules/bx-spreadsheet.md)
{% endcontent-ref %}

{% content-ref url="/pages/tz5pIeQyD3Q2Kq4JABVu" %}
[SOAP Compat +](/boxlang-+-++/modules/soap-compat-+.md)
{% endcontent-ref %}

{% content-ref url="/pages/i2LziXtK7ySd2v2CVeu5" %}
[REST Compat +](/boxlang-+-++/modules/rest-compat-+.md)
{% endcontent-ref %}

{% content-ref url="/pages/FDaCmiOAjcuwtFgkNd91" %}
[Meilisearch +](/boxlang-+-++/modules/bx-meilisearch.md)
{% endcontent-ref %}

## 🛡 Reliability & Performance

Modules are tested against real-world workloads and evolve with feedback from production adopters. Performance-sensitive modules (Redis, CSV, Spreadsheet) emphasize streaming, connection pooling, and memory-efficient data structures.

## 🔄 Versioning & Compatibility

* Semantic versioning (MAJOR.MINOR.PATCH)
* Changelogs published per release
* Compatibility matrix maintained for BoxLang runtime versions

## 📣 Feedback Loop

Need a new integration or capability? Reach out through official support channels or community discussions. Prioritized enhancements are often driven by real use cases.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://boxlang.ortusbooks.com/boxlang-+-++/modules.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
