Skip to content

8.2 Licensing

Raul Cardenas Montoya edited this page Sep 19, 2026 · 1 revision

Licensing

Relevant source files

The following files were used as context for generating this wiki page:

This wiki page details the legal framework, SPDX identifier conventions, and downstream integration implications governing the corpus-ipc codebase. The library is distributed under a dual MIT/Apache-2.0 license LICENSE-MIT:1-21, LICENSE-APACHE-2.0:1-128, enabling permissive integration into proprietary and open-source compute engines, transport daemons, and client services without copyleft restrictions.

Sources: LICENSE-MIT:1-21, LICENSE-APACHE-2.0:1-128

Permissive Dual-Licensing

corpus-ipc is distributed under the terms of both the MIT License and the Apache License (Version 2.0). Downstream users may choose either license to govern their use, distribution, and modification of the software.

MIT License

The MIT license provides permissive terms for unrestricted use, modification, and distribution LICENSE-MIT:5-9.

  • Condition: The copyright notice and permission notice must accompany all copies or substantial portions of the software LICENSE-MIT:12-13.
  • Disclaimer: The software is provided without warranty of any kind LICENSE-MIT:15-21.

Apache License, Version 2.0

The Apache 2.0 license grants similar permissions while adding explicit definitions for patent and contribution grants.

  • Grant of Copyright License: Contributors grant a perpetual, worldwide, non-exclusive, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, and distribute the work LICENSE-APACHE-2.0:66-71.
  • Grant of Patent License: Contributors grant an explicit patent license for claims necessarily infringed by their contributions LICENSE-APACHE-2.0:73-81.
  • Redistribution: Recipients must receive a copy of the license, retain attribution notices, and mark modified files LICENSE-APACHE-2.0:89-105.

Sources: LICENSE-MIT:1-21, LICENSE-APACHE-2.0:1-128

Contributor Workflow and Contribution Governance

Under the Apache 2.0 and MIT frameworks, code submitted to the repository constitutes a "Contribution" intended for incorporation into the shared "Work" LICENSE-APACHE-2.0:48-64.

Contribution Flow Diagram

This diagram maps natural language contribution concepts to code repository structures and artifact distribution forms.

graph TD
    subgraph "NaturalLanguageSpace"
        Developer["Contributor"] --> Submission["ContributionSubmission"]
    end

    subgraph "CodeEntitySpace"
        Submission --> Work["Work (corpus-ipc Repository)"]
        Work --> SourceForm["Source Form (src/*.rs)"]
        Work --> ObjectForm["Object Form (Compiled Target Artifacts)"]
        
        SourceForm --> MitLicense["LICENSE-MIT"]
        SourceForm --> ApacheLicense["LICENSE-APACHE-2.0"]
    end
Loading

Sources: LICENSE-APACHE-2.0:48-64, LICENSE-MIT:5-9

Implications for Downstream Users

The dual MIT/Apache-2.0 license model impacts how downstream components (such as thalamic-relay, brainstem-daemon, and external compute engines) integrate with corpus-ipc.

Permissive Integration

Downstream applications linking against corpus-ipc are not subject to copyleft infection:

  • Proprietary Linking: Proprietary applications can statically or dynamically link against corpus-ipc and implement traits like IpcBackend without releasing proprietary source code.
  • Custom Protocols: Extensions of IpcMessage or custom backend implementations remain under the user's chosen licensing terms.

Obligation Comparison Matrix

Obligation / Feature MIT License Apache-2.0 License
Copyleft Restriction None None
Source Disclosure Not Required Not Required
Patent Grant Implicit Explicit
Attribution Notice Required Required

Sources: LICENSE-MIT:5-13, LICENSE-APACHE-2.0:89-121

Technical Implementation and SPDX Identifiers

The codebase declares its licensing terms using standardized SPDX License Identifiers within source file headers and package metadata.

SPDX Header Conventions

Source files and documentation artifacts include machine-readable headers: // SPDX-License-Identifier: MIT OR Apache-2.0 or <!-- SPDX-License-Identifier: MIT OR Apache-2.0 -->.

System Boundary and License Isolation Diagram

This diagram illustrates the architectural boundary between corpus-ipc core types (IpcBackend, ZmqIpcBackend, IpcMessage) and downstream proprietary modules.

graph LR
    subgraph "CodeEntitySpace_corpus-ipc"
        Trait["src/trait_def.rs:IpcBackend"]
        ZmqImpl["src/zmq_backend.rs:ZmqIpcBackend"]
        Msg["src/models/envelope.rs:IpcMessage"]
    end

    subgraph "External_Compute_Engine"
        PropApp["ProprietaryApplication"]
        Plugin["ThirdPartyPlugin"]
    end

    PropApp -- "Implements" --> Trait
    Plugin -- "Serializes" --> Msg
    
    Trait -.->|"NoCopyleftInfection"| PropApp
    Msg -.->|"NoCopyleftInfection"| Plugin
Loading

Sources: LICENSE-MIT:5-10, LICENSE-APACHE-2.0:40-46

Clone this wiki locally