Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/boul2gom/nullptr-tools

๐Ÿ› ๏ธ A complete, modular and flexible toolset for all your Java โ˜• projects
https://github.com/boul2gom/nullptr-tools

docker i18n java java-libraries library redis

Last synced: about 1 month ago
JSON representation

๐Ÿ› ๏ธ A complete, modular and flexible toolset for all your Java โ˜• projects

Awesome Lists containing this project

README

        

๐Ÿ› ๏ธ A complete, modular and flexible toolset for all your Java โ˜• projects

Nullptr-tools is a collection of tools for Java projects. Its includes a lot of modules, to make it easier for you to include and interact with many commonly used libraries and frameworks.

All modules are separated from the whole project and are standalone, to keep your app lightweight. They have only a common base package included.



โš ๏ธ The project is still in development, so many modules are planed but not released yet. See "Planned modules and features" below.




Report a Bug
ยท
Request a Feature
ยท
Ask a Question

---


Master CI
Release
License
Pages
Develop CI


Discussions
Issues
Pull requests
Stars
Forks


Deepsource Active
Codefactor
Deepsource Resolved

# ๐Ÿ“‚ Available modules

- [๐Ÿ’ผ Tools](#-tools): The main module, a basic common tools base used by all other modules.
- [๐Ÿ“ฆ Redis](#-redis): A module to interact with Redis, including a connection manager and a Pub/Sub listener system.
- [๐Ÿณ Docker](#-docker): A module to interact with the Docker client, with wrappers and callbacks for all commands, and a Dockerfile generator. You can easily interact with containers, images, networks, Swarm and volumes.

# ๐Ÿ“ฅ How to get it

โš ๏ธ The project is still in development, so publishing to MavenCentral will be done later. Creating a modular project require to open a new ticket for every module, so it's very long.

๐Ÿ“ฆ All artifacts are available on [Maven Central](https://github.com/nullptr-rs/nullptr-tools), and in [GitHub Packages](https://github.com/nullptr-rs/nullptr-tools/packages/) as fallback.
- If you are using [Gradle](https://gradle.org/), you can get it by adding the following code in your build.gradle:
```groovy
repositories {
// Maven Central
mavenCentral()

// My Github Packages, as fallback if there is any problem with Maven Central
maven {
url = "https://maven.pkg.github.com/nullptr-rs/nullptr-tools"
credentials {
username System.getenv("Your GitHub username")
password System.getenv("Your GitHub password or personal access token")
}
}
}

dependencies {
implementation "io.github.nullptr:Module ID:Latest version"
}
```
- If you are using [Maven](https://maven.apache.org/), you can get it by adding the following code in your pom.xml:
```xml




github
GitHub nullptr-rs Apache Maven Packages
https://maven.pkg.github.com/nullptr-rs/nullptr-tools

Your GitHub username
Your GitHub password or personal access token




io.github.nullptr
Module ID
Latest version

```
- If you don't use any build tool, you can get it by downloading the latest release of your wanted module from [GitHub Releases](https://github.com/nullptr-rs/nullptr-tools/releases/latest)

# ๐Ÿš€ How to use it

## ๐Ÿ’ผ Tools
- ๐Ÿ“ฆ Module ID: 'tools'
- ๐Ÿ“ Size: ~350Ko
- ๐Ÿ“… Release date: 2022-03-25
- ๐Ÿง  Developer: [nullptr-rs](https://github.com/nullptr-rs)
- ๐Ÿ“„ Dependencies: [Slf4j API](https://mvnrepository.com/artifact/org.slf4j/slf4j-api), [JetBrains Annotations](https://mvnrepository.com/artifact/org.jetbrains/annotations), [Gson](https://mvnrepository.com/artifact/com.google.code.gson/gson)
- ๐Ÿ“ Description: The main module, a basic common tools base used by all other modules.
### ๐Ÿšฆ Getting started
- Check the [Wiki](https://github.com/nullptr-rs/nullptr-tools/wiki) to learn how to use it.

## ๐Ÿ“ฆ Redis
- ๐Ÿ“ฆ Module ID: 'tools-redis'
- ๐Ÿ“ Size: ~1Mo
- ๐Ÿ“… Release date: 2022-03-25
- ๐Ÿง  Developer: [nullptr-rs](https://github.com/nullptr-rs)
- ๐Ÿ“„ Dependencies: [Jedis](https://mvnrepository.com/artifact/redis.clients/jedis)
- ๐Ÿ“ Description: A module to interact with Redis, including a connection manager and a Pub/Sub listener system.
### ๐Ÿšฆ Getting started
- Create a new instance of the Redis connection through the builder:
```java
final RedisConnection connection = new RedisConnection.Builder().withHost(() -> "127.0.0.1").withPassword(() -> "my-password").build();
```
- Now you can use the connection to interact with Redis:
```java
connection.execute(jedis -> jedis.set("foo", "bar"));

final String foo = connection.executeAndReturn(jedis -> {
final String value = jedis.get("foo");
return value + " world";
});
```
- Check the [Wiki](https://github.com/nullptr-rs/nullptr-tools/wiki) to learn how to use Pub/Sub system and advanced features.

## ๐Ÿณ Docker
- ๐Ÿ“ฆ Module ID: 'tools-docker'
- ๐Ÿ“ Size: ~9.8Mo
- ๐Ÿ“… Release date: 2022-03-25
- ๐Ÿง  Developer: [nullptr-rs](https://github.com/nullptr-rs)
- ๐Ÿ“„ Dependencies: [Docker Java](https://mvnrepository.com/artifact/com.github.docker-java/docker-java), [Docker Transport Zerodep](https://mvnrepository.com/artifact/com.github.docker-java/docker-java-transport-zerodep)
- ๐Ÿ“ Description: A module to interact with the Docker client, with wrappers and callbacks for all commands, and a Dockerfile generator. You can easily interact with containers, images, networks, Swarm and volumes.
### ๐Ÿšฆ Getting started
- Create a new instance of the Docker manager through the builder:
```java
final DockerManager docker = new DockerManager.Builder().withHost(DockerHost.TCP_DAEMON).build();
```
- Now you can get the managers for all the Docker commands:
```java
final DockerClient client = docker.getClient();

final DockerInfoManager info = docker.getInfoManager();
final DockerImageManager image = docker.getImageManager();
final DockerSwarmManager swarm = docker.getSwarmManager();
final DockerVolumeManager volume = docker.getVolumeManager();
final DockerNetworkManager network = docker.getNetworkManager();
final DockerContainerManager container = docker.getContainerManager();
```
- Check the [Wiki](https://github.com/nullptr-rs/nullptr-tools/wiki) to learn how to use each manager, custom registry and the Dockerfile generator.

# ๐Ÿšง Planned modules and features

- ๐Ÿ“ Yaml and Json configuration creator -> Config
- ๐Ÿ”ง ZooKeeper tools -> ZooKeeper
- โ™ป๏ธ Placeholder registry in the I18n system -> Tools
- ๐Ÿ—‚๏ธ Provider system, to register instances of API -> Tools
- ๐Ÿ–ฅ๏ธ Commands creator for CLI apps -> CLI
- ๐Ÿ“‚ Reflection system -> Tools
- ๐Ÿ“จ Discord bot tools, with prefix and slash commands handling, etc. -> Discord
- ๐ŸงญSpigot plugin tools, with messaging, GUI creator, plugin.yml generator, auto register for commands and listeners, etc. -> Spigot
- ๐Ÿ” Encryption tools, to secure your files and data -> Security
- ๐Ÿ“ฆ Kafka tools -> Kafka
- ๐Ÿ“ˆ MySQL tools -> MySQL
- ๐Ÿ“Š MongoDB tools -> MongoDB
- ๐Ÿ“ˆ PostgreSQL tools -> PostgreSQL
- ๐Ÿ—๏ธ Spigot-like build tools creator -> Build tools
- ๐Ÿ”Œ Spigot-like plugin system -> Tools

# ๐Ÿ’ฌ Any problem ?

You can open a [Discussion](https://github.com/nullptr-rs/nullptr-tools/discussions/new?assignees=&labels=help%20wanted&title=ask%3A+), and ask for help.

# ๐Ÿ› Find a bug ?

You can open an [Issue](https://github.com/nullptr-rs/nullptr-tools/issues/new?assignees=&labels=bug&template=BUG_REPORT.md&title=bug%3A+), describe the problem, and report it.

# โญ Support the project

If you like the project, you can leave a star, or consider [sponsoring](https://github.com/sponsors/nullptr-rs) me.

# ๐Ÿค Contribute to the project

The project is open-source, so you can fork it and open a pull request to add new features or fix bugs.

# ๐Ÿ“ License

The project is released under the [GNU GPLv3](https://github.com/nullptr-rs/nullptr-tools/blob/master/LICENSE.md) license. To learn more about it and understand what it commits you to, check [this page](https://choosealicense.com/licenses/gpl-3.0/).

# ๐Ÿ‘จโ€๐Ÿ’ป Contributors

| [
@nullptr-rs](https://github.com/nullptr-rs) |
|:---------------------------------------------------------------------------------------------------------------------------------:|