# renearentz/forestj architecture

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

- Interactive diagram: https://gitdiagram.com/renearentz/forestj
- Repository: https://github.com/renearentz/forestj

## Overview

forestJ is a modular Java application framework, not a single end-user application. Its principal usage pattern is an application calling framework APIs to process files or data, issue database operations, or communicate with remote services; results return through those APIs. The tree and README establish broad capability areas, while sampled source confirms SQL query construction, mail and transfer clients, HTTP(S) request handling, and message marshalling. Many subsystem implementations were not sampled, so the graph shows those capabilities without asserting unverified internal wiring.

Main entry points: [`net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/Query.java`](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/Query.java) (SQL queries), [`net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib`](https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib) (Core utilities), [`net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io`](https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io) (File formats), [`net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io/FixedLengthRecord.java`](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io/FixedLengthRecord.java) (Fixed records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core and files"]
  node_corelib["Core utilities<br/>[lib]"]
  node_fileformats["File formats<br/>[io]"]
  node_fixedrecords["Fixed records"]
end

subgraph group_sql["Database access"]
  node_sqlquery["SQL queries<br/>[Query.java]"]
  node_sqlrecord["SQL records<br/>[Base.java]"]
  node_jdbc["JDBC base<br/>[BaseJDBC.java]"]
  node_pool["SQL pooling<br/>[BasePool.java]"]
  node_mariadb["MariaDB adapter<br/>[BaseMariaDB.java]"]
  node_mssql["MSSQL adapter<br/>[BaseMSSQL.java]"]
  node_oracle["Oracle adapter<br/>[BaseOracle.java]"]
  node_pgsql["PostgreSQL adapter<br/>[BasePGSQL.java]"]
  node_sqlite["SQLite adapter<br/>[BaseSQLite.java]"]
  node_mongodb["MongoDB adapter<br/>[BaseNoSQLMDB.java]"]
end

subgraph group_web["Web and sockets"]
  node_httpclient["HTTP&#40;S&#41; client"]
  node_webservices["REST and SOAP<br/>[https]"]
  node_socketcomms["TCP and UDP<br/>[sock]"]
  node_marshal["Message marshalling<br/>[Marshall.java]"]
end

subgraph group_services["Mail and transfers"]
  node_mail["Mail client<br/>[Client.java]"]
  node_ftp["FTP&#40;S&#41; client<br/>[Client.java]"]
  node_sftp["SFTP client<br/>[Client.java]"]
end

subgraph group_ai["Neural networks"]
  node_neural["Neural network<br/>[NeuralNetwork.java]"]
  node_trainer["Network trainer"]
end

node_application(("Java application"))

node_application -->|"calls utilities"| node_corelib
node_application -->|"reads and writes"| node_fileformats
node_application -->|"processes records"| node_fixedrecords
node_application -->|"builds queries"| node_sqlquery
node_application -->|"uses records"| node_sqlrecord
node_application -->|"uses connections"| node_pool
node_application -->|"sends requests"| node_httpclient
node_application -->|"uses services"| node_webservices
node_application -->|"communicates"| node_socketcomms
node_application -->|"marshals objects"| node_marshal
node_application -->|"uses mail"| node_mail
node_application -->|"transfers files"| node_ftp
node_application -->|"transfers files"| node_sftp
node_application -->|"uses network"| node_neural
node_application -->|"trains network"| node_trainer
node_sqlquery -->|"selects query type"| node_sqlquery
node_application -->|"uses database"| node_mariadb
node_application -->|"uses database"| node_mssql
node_application -->|"uses database"| node_oracle
node_application -->|"uses database"| node_pgsql
node_application -->|"uses database"| node_sqlite
node_application -->|"uses database"| node_mongodb

click node_corelib "https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib"
click node_fileformats "https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io"
click node_fixedrecords "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io/FixedLengthRecord.java"
click node_sqlquery "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/Query.java"
click node_sqlrecord "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/sqlcore/Base.java"
click node_jdbc "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/BaseJDBC.java"
click node_pool "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.pool/src/main/java/net/forestany/forestj/lib/sql/pool/BasePool.java"
click node_mariadb "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.mariadb/src/main/java/net/forestany/forestj/lib/sql/mariadb/BaseMariaDB.java"
click node_mssql "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.mssql/src/main/java/net/forestany/forestj/lib/sql/mssql/BaseMSSQL.java"
click node_oracle "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.oracle/src/main/java/net/forestany/forestj/lib/sql/oracle/BaseOracle.java"
click node_pgsql "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.pgsql/src/main/java/net/forestany/forestj/lib/sql/pgsql/BasePGSQL.java"
click node_sqlite "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.sqlite/src/main/java/net/forestany/forestj/lib/sql/sqlite/BaseSQLite.java"
click node_mongodb "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.nosqlmdb/src/main/java/net/forestany/forestj/lib/sql/nosqlmdb/BaseNoSQLMDB.java"
click node_httpclient "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/sock/task/send/https/TinyHttpsClient.java"
click node_webservices "https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/https"
click node_socketcomms "https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/sock"
click node_marshal "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/msg/Marshall.java"
click node_mail "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net.mail/src/main/java/net/forestany/forestj/lib/net/mail/Client.java"
click node_ftp "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net.ftp/src/main/java/net/forestany/forestj/lib/net/ftp/Client.java"
click node_sftp "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net.sftp/src/main/java/net/forestany/forestj/lib/net/sftp/Client.java"
click node_neural "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.ai/src/main/java/net/forestany/forestj/lib/ai/NeuralNetwork.java"
click node_trainer "https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.ai/src/main/java/net/forestany/forestj/lib/ai/NeuralNetworkTrainer.java"

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_corelib,node_fileformats,node_fixedrecords toneBlue
class node_sqlquery,node_sqlrecord,node_jdbc,node_pool,node_mariadb,node_mssql,node_oracle,node_pgsql,node_sqlite,node_mongodb toneAmber
class node_httpclient,node_webservices,node_socketcomms,node_marshal toneMint
class node_mail,node_ftp,node_sftp toneRose
class node_neural,node_trainer,node_application toneIndigo
```

## Components

### Core and files

- [Core utilities](https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib): `net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib`
- [File formats](https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io): `net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io`
- [Fixed records](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io/FixedLengthRecord.java): `net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/io/FixedLengthRecord.java`

### Database access

- [SQL queries](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/Query.java): `net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/Query.java`
- [SQL records](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/sqlcore/Base.java): `net.forestany.forestj.lib/src/main/java/net/forestany/forestj/lib/sqlcore/Base.java`
- [JDBC base](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/BaseJDBC.java): `net.forestany.forestj.lib.sql/src/main/java/net/forestany/forestj/lib/sql/BaseJDBC.java`
- [SQL pooling](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.pool/src/main/java/net/forestany/forestj/lib/sql/pool/BasePool.java): `net.forestany.forestj.lib.sql.pool/src/main/java/net/forestany/forestj/lib/sql/pool/BasePool.java`
- [MariaDB adapter](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.mariadb/src/main/java/net/forestany/forestj/lib/sql/mariadb/BaseMariaDB.java): `net.forestany.forestj.lib.sql.mariadb/src/main/java/net/forestany/forestj/lib/sql/mariadb/BaseMariaDB.java`
- [MSSQL adapter](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.mssql/src/main/java/net/forestany/forestj/lib/sql/mssql/BaseMSSQL.java): `net.forestany.forestj.lib.sql.mssql/src/main/java/net/forestany/forestj/lib/sql/mssql/BaseMSSQL.java`
- [Oracle adapter](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.oracle/src/main/java/net/forestany/forestj/lib/sql/oracle/BaseOracle.java): `net.forestany.forestj.lib.sql.oracle/src/main/java/net/forestany/forestj/lib/sql/oracle/BaseOracle.java`
- [PostgreSQL adapter](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.pgsql/src/main/java/net/forestany/forestj/lib/sql/pgsql/BasePGSQL.java): `net.forestany.forestj.lib.sql.pgsql/src/main/java/net/forestany/forestj/lib/sql/pgsql/BasePGSQL.java`
- [SQLite adapter](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.sqlite/src/main/java/net/forestany/forestj/lib/sql/sqlite/BaseSQLite.java): `net.forestany.forestj.lib.sql.sqlite/src/main/java/net/forestany/forestj/lib/sql/sqlite/BaseSQLite.java`
- [MongoDB adapter](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.sql.nosqlmdb/src/main/java/net/forestany/forestj/lib/sql/nosqlmdb/BaseNoSQLMDB.java): `net.forestany.forestj.lib.sql.nosqlmdb/src/main/java/net/forestany/forestj/lib/sql/nosqlmdb/BaseNoSQLMDB.java`

### Web and sockets

- [HTTP(S) client](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/sock/task/send/https/TinyHttpsClient.java): `net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/sock/task/send/https/TinyHttpsClient.java`
- [REST and SOAP](https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/https): `net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/https`
- [TCP and UDP](https://github.com/renearentz/forestj/tree/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/sock): `net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/sock`
- [Message marshalling](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/msg/Marshall.java): `net.forestany.forestj.lib.net/src/main/java/net/forestany/forestj/lib/net/msg/Marshall.java`

### Mail and transfers

- [Mail client](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net.mail/src/main/java/net/forestany/forestj/lib/net/mail/Client.java): `net.forestany.forestj.lib.net.mail/src/main/java/net/forestany/forestj/lib/net/mail/Client.java`
- [FTP(S) client](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net.ftp/src/main/java/net/forestany/forestj/lib/net/ftp/Client.java): `net.forestany.forestj.lib.net.ftp/src/main/java/net/forestany/forestj/lib/net/ftp/Client.java`
- [SFTP client](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.net.sftp/src/main/java/net/forestany/forestj/lib/net/sftp/Client.java): `net.forestany.forestj.lib.net.sftp/src/main/java/net/forestany/forestj/lib/net/sftp/Client.java`

### Neural networks

- [Neural network](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.ai/src/main/java/net/forestany/forestj/lib/ai/NeuralNetwork.java): `net.forestany.forestj.lib.ai/src/main/java/net/forestany/forestj/lib/ai/NeuralNetwork.java`
- [Network trainer](https://github.com/renearentz/forestj/blob/main/net.forestany.forestj.lib.ai/src/main/java/net/forestany/forestj/lib/ai/NeuralNetworkTrainer.java): `net.forestany.forestj.lib.ai/src/main/java/net/forestany/forestj/lib/ai/NeuralNetworkTrainer.java`

### Other components

- **Java application**

## Connections

- Java application → Core utilities: calls utilities
- Java application → File formats: reads and writes
- Java application → Fixed records: processes records
- Java application → SQL queries: builds queries
- Java application → SQL records: uses records
- Java application → SQL pooling: uses connections
- Java application → HTTP(S) client: sends requests
- Java application → REST and SOAP: uses services
- Java application → TCP and UDP: communicates
- Java application → Message marshalling: marshals objects
- Java application → Mail client: uses mail
- Java application → FTP(S) client: transfers files
- Java application → SFTP client: transfers files
- Java application → Neural network: uses network
- Java application → Network trainer: trains network
- SQL queries → SQL queries: selects query type
- Java application → MariaDB adapter: uses database
- Java application → MSSQL adapter: uses database
- Java application → Oracle adapter: uses database
- Java application → PostgreSQL adapter: uses database
- Java application → SQLite adapter: uses database
- Java application → MongoDB adapter: uses database
