bitcoinj/designdocs/modular-architecture.md

22 lines
796 B
Markdown

# 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.
````mermaid
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;
````