Zero-dependency standard types for Garrity Software projects.
Find a file
Pat Garrity 98a7aae9fd
All checks were successful
/ Build and Test Library Snapshot (pull_request) Successful in 2m18s
(minor) preparing for external publish
2026-05-28 08:29:39 -05:00
.forgejo/workflows Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
modules (patch) add direct support for vector encoding (#3) 2026-05-12 02:56:26 +00:00
project (minor) preparing for external publish 2026-05-28 08:29:39 -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 (norelease) Accidentially pushed with wrong license -- updated now that public. All should use MIT unless not possible. 2026-05-20 11:58:59 -05:00
LICENSE (norelease) Accidentially pushed with wrong license -- updated now that public. All should use MIT unless not possible. 2026-05-20 11:58:59 -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.