What Is the License for Macro? Understanding the AGPL-3.0 Terms
Macro is released under the GNU Affero General Public License v3.0 (AGPL-3.0), with the full license text stored in the repository's top-level LICENSE.txt file.
This article explains what the Macro license means for users and contributors, how the AGPL-3.0 applies across the project's Cargo workspace structure, and what to know about individual crate licensing. The AGPL-3.0 is a strong copyleft license designed to ensure that all users who interact with the software over a network can access the source code.
The Primary License: AGPL-3.0
According to the macro-inc/macro source code, the entire codebase is governed by the GNU Affero General Public License v3.0. This license extends the GPL's copyleft provisions to cover network use—meaning if you run a modified version of Macro as a network service, you must make your source code available to users.
The definitive license text resides in [LICENSE.txt](https://github.com/macro-inc/macro/blob/main/LICENSE.txt) at the repository root. No other file supersedes this document for the project as a whole.
How Licensing Works in the Cargo Workspace
Macro is organized as a Cargo workspace containing multiple crates. This structure creates a two-tier licensing system:
- Repository-level:
LICENSE.txtestablishes AGPL-3.0 as the governing license - Crate-level: Individual
Cargo.tomlfiles may declare additional permissive licenses (MIT, Apache-2.0) for specific components
Checking License Information
To verify a crate's declared license, examine its manifest:
# From a crate's Cargo.toml
[package]
name = "document-storage-service"
version = "0.1.0"
license = "MIT OR Apache-2.0"
Despite these crate-level declarations, the overarching project license remains AGPL-3.0. The workspace root [Cargo.toml](https://github.com/macro-inc/macro/blob/main/Cargo.toml) references this top-level policy.
AGPL-3.0 Implications for Different Use Cases
Self-Hosted Deployments
Running Macro on your own infrastructure triggers AGPL-3.0's network provision clause. You must provide source code to all users who interact with your deployment.
Redistribution
Distributing Macro binaries or source code requires:
- Including the
LICENSE.txtfile - Providing clear attribution
- Making your modifications available under AGPL-3.0
Contributing to Macro
All contributions to the macro-inc/macro repository are implicitly licensed under the project's AGPL-3.0 terms. The [README.md](https://github.com/macro-inc/macro/blob/main/README.md) typically includes a license badge or statement confirming this policy.
Setting Up a New Crate with Proper Licensing
When adding a crate to the Macro workspace, align its Cargo.toml with the repository's licensing approach:
[package]
name = "my_new_crate"
version = "0.1.0"
edition = "2021"
license = "AGPL-3.0"
Cargo publishes this license metadata to crates.io, ensuring consistency with the repository's top-level license.
Key License Files in Macro
| File | Location | Purpose |
|---|---|---|
LICENSE.txt |
Repository root | Full AGPL-3.0 license text |
Cargo.toml |
Workspace root | Workspace manifest with license references |
README.md |
Repository root | Project overview with license badge |
Cargo.toml |
Individual crate directories | Per-crate license declarations |
Summary
- Macro's license is AGPL-3.0, a strong copyleft license covering network use
- The full license text lives in
LICENSE.txtat the repository root - Individual crates may list MIT or Apache-2.0 in their
Cargo.tomlfiles, but the overall project license is AGPL-3.0 - Self-hosters must comply with network source provision requirements
- New crates should declare
license = "AGPL-3.0"to maintain consistency
Frequently Asked Questions
Is Macro free to use commercially?
Yes, the AGPL-3.0 permits commercial use. However, any modified version you run as a network service must have its source code made available to users. This requirement distinguishes AGPL-3.0 from more permissive licenses like MIT or Apache-2.0.
Why do some crates show MIT or Apache-2.0 licenses?
Individual crate Cargo.toml files may declare dual licensing for specific components, often to facilitate reuse in other projects. These declarations do not override the repository-wide AGPL-3.0 policy stated in LICENSE.txt.
How do I comply with Macro's license when self-hosting?
Maintain a copy of LICENSE.txt with your deployment, document any modifications you make, and provide a download link or repository containing your modified source code to all users who access your Macro instance over a network.
Can I change Macro's license for my own deployment?
No. The AGPL-3.0 terms require that derivative works remain under the same license. You cannot relicense Macro or modifications thereof under proprietary or more permissive terms without explicit permission from all copyright holders.
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 →