bitcoinj/designdocs/modular-architecture.md

796 B

A rough overview of a modular bitcoinj architecture

Note: this diagram somewhat blurs the distinctions between modules/JARs and packages. Some of the "modules" would remain packages in the short-run. Other packages that are not significant or are not changing are not shown (and are generally expected to remain in the core module). The difference between API and implementation dependencies is (for now) omitted.

graph TD
    B[base] --> G[guava]
    B --> S[slf4j]
    B --> A[jcip-annotations]
    CR[crypto] --> BC[Bouncy Castle]
    CR --> B
    CO[core] --> CR
    W --> P[ProtoBuf]
    W[wallet] --> CO
    I[integration-test] --> W
    WT[wallet-tool] --> W
    FX[wallettemplate] --> W
    E[examples] --> W
classDef external fill:#999;
class G,S,A,BC,P external;