# bollylu/bltools.core architecture

> Architecture diagram of the GitHub repository bollylu/bltools.core, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bollylu/bltools.core
- Repository: https://github.com/bollylu/bltools.core

## Overview

BLTools.Core is a modular .NET utility library, not an application with a single runtime entry point. A typical use is for a consumer to call a focused API—such as parsing command-line arguments, formatting text, or converting a value—and use the returned result. The graph preserves the README’s major capability areas and sampled central modules. Many implementations were not sampled, so their internal relationships are omitted; dashed links mark the general, documented consumer-to-library relationship rather than a specific call path.

Main entry points: [`src/BLTools.core/Logging/Loggers/TConsoleLogger.cs`](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/TConsoleLogger.cs) (Console logger), [`src/BLTools.core/Logging/Loggers/TTraceLogger.cs`](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/TTraceLogger.cs) (Trace logger), [`src/BLTools.core/SplitArgs/SplitArgs.cs`](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/SplitArgs/SplitArgs.cs) (Argument parser), [`src/BLTools.core/Extension methods/Object/ObjectExtension.cs`](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Extension%20methods/Object/ObjectExtension.cs) (Object dump)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_args["Arguments and conversion"]
  node_splitargs["Argument parser<br/>[SplitArgs.cs]"]
  node_argitem["Argument element<br/>[ArgElement.cs]"]
  node_converter["Type conversion<br/>[BLConverter.cs]"]
end

subgraph group_utility["Core utilities"]
  node_extensions["Extension methods<br/>[Extension methods]"]
  node_chrono["Timing helpers<br/>[TChrono.cs]"]
  node_structures["Data structures<br/>[Data structures]"]
end

subgraph group_diagnostics["Diagnostics and logging"]
  node_about["Application information<br/>[TAbout.cs]"]
  node_traceinfo["Trace inspection<br/>[TraceInfo.cs]"]
  node_objectdump["Object dump<br/>[ObjectExtension.cs]"]
  node_dumpoptions["Dump options"]
  node_loggerapi["Logger interface<br/>[ILogger.cs]"]
  node_severity["Log severity<br/>[ESeverity.cs]"]
  node_loggerbase["Logger base<br/>[ALogger.cs]"]
  node_loggeroptions["Logger options<br/>[TLoggerOptions.cs]"]
  node_consolelogger["Console logger<br/>[TConsoleLogger.cs]"]
  node_tracelogger["Trace logger<br/>[TTraceLogger.cs]"]
  node_otherloggers["Other logger targets<br/>[Loggers]"]
end

subgraph group_security["Security"]
  node_rsa["RSA operations<br/>[TRSAEncryptor.cs]"]
  node_rsaextensions["RSA string helpers"]
  node_rsapublic["RSA public key<br/>[TRSAPublicKey.cs]"]
  node_symmetric["Symmetric encryption<br/>[Symmetric]"]
  node_hashing["Hashing helpers<br/>[Hashing]"]
end

subgraph group_presentation["Console and text"]
  node_console["Console interaction<br/>[Console]"]
  node_text["Text formatting<br/>[TextBox.cs]"]
end

node_consumer(("Library consumer"))

node_consumer -.->|"calls API"| node_splitargs
node_consumer -.->|"calls API"| node_converter
node_consumer -.->|"uses helpers"| node_extensions
node_consumer -.->|"uses helpers"| node_chrono
node_consumer -.->|"uses structures"| node_structures
node_consumer -.->|"uses diagnostics"| node_about
node_consumer -.->|"uses diagnostics"| node_traceinfo
node_consumer -.->|"dumps objects"| node_objectdump
node_consumer -.->|"logs messages"| node_loggerapi
node_consumer -.->|"uses encryption"| node_rsaextensions
node_consumer -.->|"uses encryption"| node_symmetric
node_consumer -.->|"uses hashing"| node_hashing
node_consumer -.->|"uses console tools"| node_console
node_consumer -.->|"formats text"| node_text
node_splitargs -->|"creates elements"| node_argitem
node_objectdump -->|"reads options"| node_dumpoptions
node_consolelogger -->|"inherits from"| node_loggerbase
node_tracelogger -->|"inherits from"| node_loggerbase
node_consolelogger -->|"configures with"| node_loggeroptions
node_tracelogger -->|"configures with"| node_loggeroptions
node_rsaextensions -->|"delegates to"| node_rsa
node_rsa -->|"uses key"| node_rsapublic

click node_splitargs "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/SplitArgs/SplitArgs.cs"
click node_argitem "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/SplitArgs/ArgElement.cs"
click node_converter "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Converter/BLConverter.cs"
click node_extensions "https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Extension%20methods"
click node_chrono "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Chrono/TChrono.cs"
click node_structures "https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Data%20structures"
click node_about "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Diagnostic/About/TAbout.cs"
click node_traceinfo "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Diagnostic/TraceInfo.cs"
click node_objectdump "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Extension%20methods/Object/ObjectExtension.cs"
click node_dumpoptions "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Extension%20methods/Object/SObjectDumpOptions.cs"
click node_loggerapi "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/ILogger.cs"
click node_severity "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/ESeverity.cs"
click node_loggerbase "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/ALogger.cs"
click node_loggeroptions "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/LoggerOptions/TLoggerOptions.cs"
click node_consolelogger "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/TConsoleLogger.cs"
click node_tracelogger "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/TTraceLogger.cs"
click node_otherloggers "https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Logging/Loggers"
click node_rsa "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Security/Encryption/Asymmetric/TRSAEncryptor.cs"
click node_rsaextensions "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Security/Encryption/Asymmetric/TRSACryptographyExtension.cs"
click node_rsapublic "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Security/Encryption/Asymmetric/TRSAPublicKey.cs"
click node_symmetric "https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Security/Encryption/Symmetric"
click node_hashing "https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Security/Hashing"
click node_console "https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Console"
click node_text "https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Text/TextBox.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_splitargs,node_argitem,node_converter toneBlue
class node_extensions,node_chrono,node_structures toneAmber
class node_about,node_traceinfo,node_objectdump,node_dumpoptions,node_loggerapi,node_severity,node_loggerbase,node_loggeroptions,node_consolelogger,node_tracelogger,node_otherloggers toneMint
class node_rsa,node_rsaextensions,node_rsapublic,node_symmetric,node_hashing toneRose
class node_console,node_text,node_consumer toneIndigo
```

## Components

### Arguments and conversion

- [Argument parser](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/SplitArgs/SplitArgs.cs): `src/BLTools.core/SplitArgs/SplitArgs.cs`
- [Argument element](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/SplitArgs/ArgElement.cs): `src/BLTools.core/SplitArgs/ArgElement.cs`
- [Type conversion](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Converter/BLConverter.cs): `src/BLTools.core/Converter/BLConverter.cs`

### Core utilities

- [Extension methods](https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Extension%20methods): `src/BLTools.core/Extension methods`
- [Timing helpers](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Chrono/TChrono.cs): `src/BLTools.core/Chrono/TChrono.cs`
- [Data structures](https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Data%20structures): `src/BLTools.core/Data structures`

### Diagnostics and logging

- [Application information](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Diagnostic/About/TAbout.cs): `src/BLTools.core/Diagnostic/About/TAbout.cs`
- [Trace inspection](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Diagnostic/TraceInfo.cs): `src/BLTools.core/Diagnostic/TraceInfo.cs`
- [Object dump](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Extension%20methods/Object/ObjectExtension.cs): `src/BLTools.core/Extension methods/Object/ObjectExtension.cs`
- [Dump options](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Extension%20methods/Object/SObjectDumpOptions.cs): `src/BLTools.core/Extension methods/Object/SObjectDumpOptions.cs`
- [Logger interface](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/ILogger.cs): `src/BLTools.core/Logging/Loggers/ILogger.cs`
- [Log severity](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/ESeverity.cs): `src/BLTools.core/Logging/ESeverity.cs`
- [Logger base](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/ALogger.cs): `src/BLTools.core/Logging/Loggers/ALogger.cs`
- [Logger options](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/LoggerOptions/TLoggerOptions.cs): `src/BLTools.core/Logging/LoggerOptions/TLoggerOptions.cs`
- [Console logger](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/TConsoleLogger.cs): `src/BLTools.core/Logging/Loggers/TConsoleLogger.cs`
- [Trace logger](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Logging/Loggers/TTraceLogger.cs): `src/BLTools.core/Logging/Loggers/TTraceLogger.cs`
- [Other logger targets](https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Logging/Loggers): `src/BLTools.core/Logging/Loggers`

### Security

- [RSA operations](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Security/Encryption/Asymmetric/TRSAEncryptor.cs): `src/BLTools.core/Security/Encryption/Asymmetric/TRSAEncryptor.cs`
- [RSA string helpers](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Security/Encryption/Asymmetric/TRSACryptographyExtension.cs): `src/BLTools.core/Security/Encryption/Asymmetric/TRSACryptographyExtension.cs`
- [RSA public key](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Security/Encryption/Asymmetric/TRSAPublicKey.cs): `src/BLTools.core/Security/Encryption/Asymmetric/TRSAPublicKey.cs`
- [Symmetric encryption](https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Security/Encryption/Symmetric): `src/BLTools.core/Security/Encryption/Symmetric`
- [Hashing helpers](https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Security/Hashing): `src/BLTools.core/Security/Hashing`

### Console and text

- [Console interaction](https://github.com/bollylu/bltools.core/tree/master/src/BLTools.core/Console): `src/BLTools.core/Console`
- [Text formatting](https://github.com/bollylu/bltools.core/blob/master/src/BLTools.core/Text/TextBox.cs): `src/BLTools.core/Text/TextBox.cs`

### Other components

- **Library consumer**

## Connections

- Library consumer → Argument parser: calls API
- Library consumer → Type conversion: calls API
- Library consumer → Extension methods: uses helpers
- Library consumer → Timing helpers: uses helpers
- Library consumer → Data structures: uses structures
- Library consumer → Application information: uses diagnostics
- Library consumer → Trace inspection: uses diagnostics
- Library consumer → Object dump: dumps objects
- Library consumer → Logger interface: logs messages
- Library consumer → RSA string helpers: uses encryption
- Library consumer → Symmetric encryption: uses encryption
- Library consumer → Hashing helpers: uses hashing
- Library consumer → Console interaction: uses console tools
- Library consumer → Text formatting: formats text
- Argument parser → Argument element: creates elements (evidence: `src/BLTools.core/SplitArgs/SplitArgs.cs`)
- Object dump → Dump options: reads options (evidence: `src/BLTools.core/Extension methods/Object/ObjectExtension.cs`)
- Console logger → Logger base: inherits from (evidence: `src/BLTools.core/Logging/Loggers/TConsoleLogger.cs`)
- Trace logger → Logger base: inherits from (evidence: `src/BLTools.core/Logging/Loggers/TTraceLogger.cs`)
- Console logger → Logger options: configures with (evidence: `src/BLTools.core/Logging/Loggers/TConsoleLogger.cs`)
- Trace logger → Logger options: configures with (evidence: `src/BLTools.core/Logging/Loggers/TTraceLogger.cs`)
- RSA string helpers → RSA operations: delegates to (evidence: `src/BLTools.core/Security/Encryption/Asymmetric/TRSACryptographyExtension.cs`)
- RSA operations → RSA public key: uses key (evidence: `src/BLTools.core/Security/Encryption/Asymmetric/TRSAEncryptor.cs`)
