MIT/BSL-1.1 License Impact on Caveman Component Usage
JuliusBrussee/caveman employs a split-license model where SDKs and client interfaces are MIT-licensed for unrestricted use, while the core compression engine is BSL-1.1-licensed, permitting self-hosted production use but prohibiting third-party SaaS offerings without a commercial license until the 2030 change date.
The JuliusBrussee/caveman repository implements a strategic dual-licensing approach to balance open-source accessibility with commercial sustainability. Understanding the MIT/BSL-1.1 license component usage boundaries is essential for developers integrating these tools, as the license type determines whether you can embed functionality in commercial products, offer hosted services, or redistribute the code. The root LICENSE file declares the project’s overall MIT status while explicitly delegating engine-linked directories to the Business Source License 1.1 terms.
License Architecture and Component Mapping
Caveman’s codebase is explicitly partitioned into two distinct licensing zones. The separation is documented in [LICENSING.md](https://github.com/JuliusBrussee/caveman/blob/main/LICENSING.md), which maps specific directories to their governing licenses.
MIT-Licensed Surface Components
The MIT license governs all client-facing SDKs, command-line tools, and skill definitions. You can freely copy, modify, redistribute, and sell these components without restriction, including offering them as hosted services. This category includes:
skills/– Skill surface definitionspackages/sdk/*– Python and TypeScript SDKspackages/cli– Command-line launcherpackages/agent– Agent interfacesmem/*– Thin client implementations (JavaScript/Python wrappers)
The Python SDK definition in [packages/sdk/python/pyproject.toml](https://github.com/JuliusBrussee/caveman/blob/main/packages/sdk/python/pyproject.toml) and the TypeScript SDK in [packages/sdk/typescript/package.json](https://github.com/JuliusBrussee/caveman/blob/main/packages/sdk/typescript/package.json) explicitly declare MIT licensing, ensuring these thin clients remain free for any use case.
BSL-1.1 Engine-Linked Core
The Business Source License 1.1 (BSL-1.1) covers all engine-linked code that performs the core compression and rewriting operations. These components carry the Additional Use Grant restriction that limits commercial SaaS deployment. BSL-1.1 directories include:
engine/– Core compression enginerewriter/,browse/,proxy/,mcp/,shrink/mem/Go core (distinct from the MIT-licensed thin clients)shared/platform/– Platform-specific implementations
According to the Additional Use Grant in LICENSE.BSL, you may use these components for internal evaluation, local development, CI testing, and self-hosted production use for your own traffic. However, you cannot provide the engine functionality as a hosted, managed, or embedded service to third parties without obtaining a commercial license from the licensor.
Usage Rights and Commercial Boundaries
The distinction between permitted and prohibited uses hinges on whether the deployment involves third-party access or remains strictly internal.
Permitted Uses Under BSL-1.1
You retain broad rights to deploy BSL-1.1 components within your own infrastructure. Valid use cases include running the engine.wasm artifact or shrink/ Go binary on your own servers to process your own data streams. The license explicitly allows production use provided you are not selling access to the engine’s functionality as a service.
Prohibited SaaS Deployments
Embedding the BSL-1.1-licensed engine in a multi-tenant control plane or hosted optimization service violates the license terms. This includes scenarios where external customers interact with Caveman’s functionality through your infrastructure without downloading and running their own instance. The Commercial Boundary section in [LICENSING.md](https://github.com/JuliusBrussee/caveman/blob/main/LICENSING.md) explicitly separates free/source-available uses (self-hosted, bring-your-own-key setups) from commercial uses (audited metering, multi-tenant hosting).
Future Transition: BSL to Apache 2.0
The BSL-1.1 license includes a Change Date provision that guarantees eventual open-source conversion. On 2030-06-21 (or the fourth anniversary of a specific version’s first public distribution), the BSL-1.1-covered code automatically re-licenses to Apache 2.0. This transition removes the commercial restriction for that specific version, allowing unrestricted SaaS deployment and redistribution without requiring a commercial license.
Practical Code Examples
Using the MIT-Licensed Python SDK
The following implementation uses only MIT-licensed code and carries no BSL restrictions:
# Import the thin client – MIT licensed
from caveman_sdk import CavemanClient
client = CavemanClient(api_key="YOUR_KEY")
result = client.optimize(prompt="Rewrite this paragraph.")
print(result)
This Python SDK acts as a thin client communicating with the engine; it does not embed BSL-1.1 code directly.
Self-Hosted Engine Deployment
When running the engine locally for your own infrastructure, you must comply with BSL-1.1 terms but require no additional license:
# The CLI launcher is MIT licensed, but it fetches a BSL-covered binary on first run.
# This is allowed for self-hosted use.
caveman-cli --engine ./engine.wasm --input prompt.txt
This configuration represents permitted self-hosted use under the Additional Use Grant.
Prohibited: Embedding in SaaS Offerings
The following Go code pattern illustrates a deployment that would violate BSL-1.1 terms if offered as a hosted service:
// This Go code would embed the BSL-licensed engine – prohibited for SaaS use
// unless you have a commercial license from the licensor.
import "github.com/JuliusBrussee/caveman/engine"
Deploying this as part of a managed service offering to external customers without a commercial license directly contravenes the BSL-1.1 restrictions on hosted use.
Key Licensing Documentation
Understanding the MIT/BSL-1.1 license component usage requires referencing these specific files:
LICENSE– Root file declaring the overall MIT license with a scope note pointing to BSL-1.1 for engine-linked codeLICENSE.BSL– Complete Business Source License 1.1 text, including the Additional Use Grant and Change Date (2030-06-21)- [
LICENSING.md](https://github.com/JuliusBrussee/caveman/blob/main/LICENSING.md) – Per-directory license map defining the commercial boundary between free and restricted uses packages/sdk/python/pyproject.toml– MIT-licensed Python SDK metadatapackages/sdk/typescript/package.json– MIT-licensed TypeScript SDK metadataengine/andshrink/directories – BSL-1.1-licensed core components
Summary
- MIT-licensed components (
packages/sdk/*,skills/, CLI launcher) allow unrestricted commercial use, modification, and SaaS deployment. - BSL-1.1-licensed engine components (
engine/,rewriter/,shrink/, Go core) permit self-hosted production use but prohibit offering the functionality as a hosted service to third parties without a commercial license. - The Change Date of 2030-06-21 will automatically convert BSL-1.1 code to Apache 2.0, removing commercial restrictions for that version.
- Always consult [
LICENSING.md](https://github.com/JuliusBrussee/caveman/blob/main/LICENSING.md) to verify which directories fall under each license before deploying in commercial environments.
Frequently Asked Questions
Can I use Caveman in my commercial SaaS product?
You can use the MIT-licensed SDKs and client tools in commercial SaaS products without restriction. However, if your SaaS product embeds or links to the BSL-1.1-licensed engine components to provide optimization services to external customers, you must obtain a commercial license from the licensor. Self-hosted use for your own traffic is permitted under the BSL Additional Use Grant without a separate license.
What happens after the BSL-1.1 Change Date?
On 2030-06-21 (or four years after a specific version’s release), the BSL-1.1-covered components automatically transition to the Apache 2.0 license. This removes the prohibition on hosted and SaaS use for that specific version, allowing unrestricted commercial deployment. Until that date, you must honor the BSL-1.1 restrictions.
Is the Python SDK safe to use without BSL restrictions?
Yes. The Python SDK located in packages/sdk/python/ is explicitly MIT-licensed as declared in its [pyproject.toml](https://github.com/JuliusBrussee/caveman/blob/main/packages/sdk/python/pyproject.toml). It functions as a thin client and does not embed the BSL-1.1 engine code directly. You can redistribute, modify, and deploy this SDK in any commercial context, including SaaS offerings, without complying with BSL-1.1 restrictions.
Do I need a license to run Caveman on my own servers?
No additional license is required for self-hosted use. The BSL-1.1 explicitly permits running the engine on your own infrastructure for your own traffic, including production environments. You only need a commercial license if you provide the engine's functionality as a hosted, managed, or embedded service to third parties, or if you allow external customers to access the engine through your infrastructure.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →