Zero-dependency standard types for Garrity Software projects.
Find a file
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
.forgejo/workflows Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
modules fs2 already has it 2026-05-06 21:51:33 -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 Working on some more helper things. 2026-05-03 21:20:04 -05:00
LICENSE Initializing the repository with some basic types. 2026-04-25 22:46:11 -05:00
README.md fs2 already has it 2026-05-06 21:51:33 -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.

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[_]])