Welcome to Nannoq Tools
Table of Contents
Modules
auth is a collection of classes for managing JWT based authentication and authorization on a vertx environment.
It supports:
- JWT Creation
- JWT Verification
- JWT Revocation
- OAuth Login
- Direct Token Conversion
Current providers:
- Facebook
- Google
- Instagram
cluster is a collection of classes for managing services and API's in clustered Vert.x environments as well as helpers for clustering.
Main features:
- ServiceManager (Manage services and API's easily across a vertx cluster)
- ApiManager (Creates Http Records for the ServiceManager)
Firebase Cloud Messaging (FCM)
fcm is a XMPP server implementation for use with Firebase Cloud Messaging with all features, for a Vert.x environment.
It supports:
- Topics
- Direct Messages (Down and Upstream)
- Device Groups
- Device Registrations
repository is a collection of repository implementations for Vert.x. All repositories operate with a unified querying interface that abstracts away the underlying data store. Individual implementations will be extended for any data store specific functionality that is not reasonable to abstract away.
It supports:
- Caching, extends to clustered caching with JCache if vertx is clustered.
- Will refresh ETags if supplied an EtagManager implementation.
Operations:
- Batch create/read/update/delete
- Queries
* Filtering
* Ordering
* Projections
* Aggregations
web is a REST (Level 3) controller implementation that is based on vertx-web and leverages [nannoq-repository](https://github.com/NoriginMedia/nannoq-repository) for data store access.
It incorporates:
- ETag
- Clustered Caching through nannoq-repository
It supports:
- Filtering
- Ordering
- Projections
- Grouping
- Aggregations
- Cross-Model Aggregations
Prerequisites
Vert.x >= 3.5.3
Java >= 1.8
Kotlin
Installing
./gradlew install
Running the tests
./gradlew test
Running the integration tests
./gradlew verify
Usage
First install with either Maven:
<dependency>
<groupId>com.nannoq</groupId>
<artifactId>moduleToImport</artifactId>
<version>1.1.0</version>
</dependency>
or Gradle:
dependencies {
compile group: 'nannoq.com:moduleToImport:1.1.0’
}
Implementation and Use
Please consult the GitHub Pages on implementations and use.
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository
Authors
- Anders Mikkelsen - Initial work - Norigin Media
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details