2.2 KiB
Gajumaru Java Libraries
Java libraries for the Gajumaru
Purpose
gm-java provides the basic functionality required to interact with the Gajumaru blockchain system. This includes serialization, function wrappers for Gajumaru node endpoint calls, handling of GRIDS URLs, formatting of monetary values, any cryptographic functions not covered in standard Java libraries, and some network functionality necessary to interact smoothly with Gajumaru chains (Groot and AC networks).
This codebase may not include references to third-party libraries, may not permit un-zeroed byte values to be left on the heap until the JVM eventually decides to garbage collect them, and may not build up a big, gnarly, inheritance-heavy OOPsy object hierarchy.
Classes should generally be structured as final classes of functions that operate over data
that can be expressed as Java primitives, most commonly byte[] and some form of int or
occasionally BigInteger.
BigInteger is not permitted in cryptographic operations, as it leaves potentially sensitive
artifacts scattered all throughout the heap and can occasionally make the garbage collector
go bananas when performing heavy math operations. BigInteger is excellent, however, for things
like representing currency values in Pucks.
All forms of floating-point arithmetic are forbidden in all currency calculations. The Gajumaru does not have floats, and they do not exist at all in the Sophia language.
Terms
Copyright (c) 2026 QPQ AG info@qpq.swiss. All rights reserved. Project: Gajumaru Core Java Libraries
This program is dual-licensed:
-
Under the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version (AGPL-3.0-or-later). (See LICENSE file.)
-
Under a commercial/proprietary license available directly from QPQ AG. If you wish to use this software outside the strict constraints of the AGPLv3 (e.g. within a closed-source or proprietary product), you must purchase a commercial license from QPQ AG.
Authors:
- Craig Everett craigeverett@qpq.swiss
SPDX-License-Identifier: AGPL-3.0-or-later OR LicenseRef-QPQ-Commercial