Ecosystem
GlobsFramework ships a growing collection of modules. Each one shares the same
GlobType / Glob vocabulary, so data flows naturally between
layers without mapping code.
Core library
globsframework
The data model: GlobType, Field, Glob,
MutableGlob, annotations, constraints, and the visitor API.
Everything else depends on this.
Dependencies: slf4j-api only
Serialization
globs-gson
JSON serialization and deserialization using Google Gson.
Encode any Glob to JSON and decode JSON back to a Glob — with full support for
nested GlobField, arrays, and sparse fields.
Dependencies: gson
globs-xml
XML serialization built on top of saxstack, a lightweight SAX-based parser. Reads and writes XML without DOM.
Dependencies: saxstack
globs-bin-serialisation
A compact binary encoder using a TLV (Type–Length–Value) format, similar in spirit
to Protocol Buffers — without the code generator. Fields are identified by their
index in the GlobType.
Dependencies: none
globs-csv
Read and write CSV (and similar delimiter-separated formats) using Apache Commons CSV.
Column names are matched to StringField / DoubleField /
etc. automatically.
Dependencies: commons-csv
Database
globs-db
SQL access via JDBC. Create tables from a GlobType, run type-safe
insert / update / delete / select queries, stream results as Globs.
Works with any JDBC driver.
Dependencies: JDBC driver of your choice
Network & APIs
globs-http
HTTP server and client adapter backed by Apache HTTP Components. URL parameters, query parameters, request bodies, and headers are all modeled as Globs. Automatically generates an OpenAPI JSON from your type definitions.
Dependencies: httpcomponents-core 5
globs-graphql
GraphQL API implementation. Resolvers receive and return Globs; the schema is
derived from GlobType definitions. Uses ANTLR with the official
GraphQL grammar — no heavy graphql-java dependency for execution.
Dependencies: antlr4-runtime
globs-grpc
gRPC integration. Maps Protobuf messages to and from Globs so that gRPC services can be implemented using the same model as the rest of the application.
Dependencies: none
globs-etcd
Service discovery and distributed configuration using etcd. Key-value entries are stored and retrieved as Globs, making cluster configuration type-safe.
Dependencies: jetcd
globs-nats
Messaging with NATS. Publish and subscribe to Glob-encoded messages over NATS subjects, with automatic serialization/deserialization.
Dependencies: nats.java
Tooling & utilities
globs-commandline
Parse command-line arguments into a Glob. Define your CLI flags as a
GlobType; the parser fills in a MutableGlob from
argv. Automatic --help text is generated from annotations.
Dependencies: none
globs-generate experimental
Generates optimized Glob instances for a given GlobType
using ASM bytecode generation. Instead of the generic map-based implementation,
each type gets a dedicated class with native primitive storage (no boxing for
int, long, double), plus low-level
zero-copy accessors (GlobGetIntAccessor, GlobSetDoubleAccessor, …)
for high-throughput use cases. Activated via a system property — no API change needed.
Dependencies: asm
Work in progress — not yet used in production.
globs-view
Data aggregation and reporting. Define breakdowns and outputs over Globs — similar to pivot tables — to produce summary views from a stream of Globs.
Dependencies: none
globs-shared (off-heap)
High-performance off-heap storage for Globs using Java's Foreign Memory API (Java 22+). Stores large datasets outside the JVM heap to reduce GC pressure, with unique and non-unique indexed lookups and disk persistence.
Dependencies: Java 22+
· Maven: globs-ffm
globs-fix experimental
FIX (Financial Information eXchange) protocol support. Encode and decode FIX messages as Globs, bringing the same generic pipeline to financial messaging.
Dependencies: none
Work in progress — not yet used in production.
Quickstart: all-in-one example
The easiest way to see the ecosystem in action is to clone the all-in-one repository, which wires several modules together in runnable examples:
git clone --recursive https://github.com/globsframework/globs-allInOne.git
Then run:
simplest/src/main/java/org/globsframework/sample/graphql/Example2.java
to see JSON, GraphQL, and database layers working together from a single type definition.