Open Source
Garrity Software exposes all non-product software as open source under the MIT license.
If you have questions or want to discuss these projects, consider joining the Garrity Software Discord Community.
Scala
All GS projects are currently implemented in Scala 3. No Scala 2 artifacts are available. GS typically leans towards the newest available Scala versions. GS libraries typically try to minimize size and dependency scope.
GS does not yet build libraries for Scala Native or ScalaJS.
Version Control (Git)
GS uses self-hosted version control at https://git.garrity.co/garrity-software. All code is available, though registration is not available at this time. Once all setup is complete, accounts may be granted to allow for contributions.
Maven
GS provides a Maven server and does not upload artifacts to other public Maven/Ivy repositories at this time.
resolvers += "garrity-software-gs" at "https://maven.garrity.co/gs"
No credentials are required to use this repository.
API Documentation
ScalaDoc is not yet published.
Projects
- gs-uuid (Scala 3) (Library)
- Uses JUG
and ported code from Jackson to provide an opaque
UUID
type overjava.util.UUID
, backed by custom rendering and parsing. - gs-slug (Scala 3) (Library)
- Provides a
Slug
type. This type relies on a very small set of ASCII characters and is intended for URL-safe identifiers. - gs-hex (Scala 3) (Library)
- Small, efficient, Hexadecimal conversion library with encoder/decoder type classes and support for basic types. Based on handling byte arrays.
- gs-blob (Scala 3) (Library)
- Opaque type (
Blob
) and tools (e.g. encoding) for "blobs" - arrays of bytes. - gs-datagen (Scala 3) (Library)
- Random data generation library for Scala 3. Intended for use in tests, but not limited to that case. Provides a composable type for generators and several standard generators.
- gs-config (Scala 3) (Library)
- Library for loading, and specifically auditing, configuration. Provides a complete digest of what configuration keys were queried and what happened to them.
Incubator
- gs-crypto (Scala 3) (Library)
- Based on JVM standard implementations and Bouncy Castle. Working to define some crypto interfaces for GS projects in a way that works well with Scala.
- smolban (Scala 3) (Application)
- Fun side-project to create a small/minimal Kanban oriented system. Light on process, helps prove out certain concepts in a non-critical application.
- torii (Scala 3) (Application) (Library)
- No code is yet pushed. The intent is to create a reusable Authentication/Authorization featureset for GS software and anyone that wants to use it.
Commentary
2024-06-10
During application development I keep getting hung up on different dependencies such as crypto, the concept of a user, different core model types, and other general things. While I've drafted suitable implementations before, I want them in a clean, tested, well-organized set of packages.
I'm currently in the middle of a multi-week hiatus due to multiple types of travel and other extreme schedule impact. Development set to resume in the latter half of June.