gs-std/README.md
Pat Garrity bb842a630f
Some checks failed
/ Build and Release Library (push) Has been cancelled
readme update
2026-05-06 21:52:39 -05:00

72 lines
1.7 KiB
Markdown

# gs-std
[GS Open Source](https://garrity.co/oss.html) |
[License (Apache 2.0)](./LICENSE)
Garrity Software standard types and operations with minimal dependencies.
- [Usage](#usage)
- [Core Module](#core-module)
- [I/O Module](#io-module)
- [Effect Module](#effect-module)
## Usage
This artifact is available in the Garrity Software Maven repository.
```scala
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](#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.