|
All checks were successful
/ Build and Release Library (push) Successful in 2m18s
Reviewed-on: #1 |
||
|---|---|---|
| .forgejo/workflows | ||
| modules | ||
| project | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .scalafmt.conf | ||
| build.sbt | ||
| LICENSE | ||
| README.md | ||
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.