Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/boul2gom/nullptr-tools
- Owner: boul2gom
- License: gpl-3.0
- Created: 2022-01-20T15:55:26.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-11-30T08:23:20.000Z (12 months ago)
- Last Synced: 2024-09-28T12:03:20.669Z (about 2 months ago)
- Topics: docker, i18n, java, java-libraries, library, redis
- Language: Java
- Homepage: https://nullptr-rs.github.io/nullptr-tools
- Size: 1.2 MB
- Stars: 8
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
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.
---
# ๐ 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) |
|:---------------------------------------------------------------------------------------------------------------------------------:|