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