Zero-dependency standard types for Garrity Software projects.
Find a file
Pat Garrity 1f43c9815e
Some checks failed
/ Build and Release Library (push) Failing after 2m4s
(patch) first useful build of the library
2026-05-06 21:53:05 -05:00
.forgejo/workflows Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
modules (patch) first useful build of the library 2026-05-06 21:53:05 -05:00
project Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
.gitignore Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
.pre-commit-config.yaml Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
.scalafmt.conf Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
build.sbt (patch) first useful build of the library 2026-05-06 21:53:05 -05:00
LICENSE Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
README.md (patch) first useful build of the library 2026-05-06 21:53:05 -05:00

gs-std

GS Open Source | License (Apache 2.0)

Garrity Software standard types and operations with minimal dependencies.

Usage

This artifact is available in the Garrity Software Maven repository.

externalResolvers +=
  "Garrity Software Releases" at "https://maven.garrity.co/releases"

// No Dependencies
val GsStdCore: ModuleID =
  "gs" %% "gs-std-core-v0" % "$VERSION"

// Depends on Cats Effect and Fs2
val GsStdIO: ModuleID =
  "gs" %% "gs-std-io-v0" % "$VERSION"

// Depends on Cats Effect and Fs2
val GsStdEffect: ModuleID =
  "gs" %% "gs-std-effect-v0" % "$VERSION"

Core Module

Provides standard types, wrappers, and tools.

  • Common semantic types (e.g. CreatedAt).
  • Encoding and representing encoded data.
  • Hashing algorithms and representing hashes.
  • Reasoning about bytes and blobs.

I/O Module

File Helpers

Files: These provide support for reading and writing files. Provides wrapping around java.nio.file.Files.

Note that for streaming operations, fs2.io provides everything conveniently and does not benefit from wrapping.

Resource Helpers

These provide support for reading files from packaged resource directories (e.g. src/main/resources).

Effect Module

This module relies on the Core Module and takes advantage of the types defined therein.

Random Numbers

Rng[F[_]]: Effectful random number generator with creation/testing helpers.

Dates and Times

DateTimeProvider[F[_]]: Effectful provider for dates and times. Provides an implementation based on clock injection. Helps to decouple date/time use from static methods.