layers is a loose collection of generic components for building services and is heavily based
on Apache Pekko.
libraryDependencies ++= Seq(
"io.github.sndnv" %% "layers" % "<version>",
"io.github.sndnv" %% "layers-testing" % "<version>" % Test, // components used for unit testing
...
)
Examples of their usage can be seen in either the code documentation or the tests of each component.
Directives for logging/metrics and discarding entities, JSON formats and matchers.
Event publishing and collection.
Generic data store traits with migration support.
JWT-based authenticators, JWK providers, OAuth clients and TLS helper classes.
Service persistence, bootstrap providers, actions and components.
Service actions, action scheduling and event-based execution.
Service components, static and dynamic component loading, and component dependency resolution.
Basic service configuration verification.
Collectors and providers for analytics information and metrics.
Helper classes and functions for testing.
Refer to the DEVELOPMENT.md file for more details.
Contributions are always welcome!
Refer to the CONTRIBUTING.md file for more details.
We use SemVer for versioning.
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details
Copyright 2025 https://github.com/sndnv
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.