gs-std/README.md
Pat Garrity 146afe6a88
Some checks failed
/ Build and Release Library (push) Has been cancelled
fs2 already has it
2026-05-06 21:51:33 -05:00

1.8 KiB

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.

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.

Streaming Hash

Provides support for streaming arbitrary bytes through different hashing algorithms:

  • MD5 (MD5Pipe[F[_]])
  • SHA-256 (SHA256Pipe[F[_]])