72 lines
1.7 KiB
Markdown
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.
|