Coder Social home page Coder Social logo

boul2gom / nullptr-tools Goto Github PK

View Code? Open in Web Editor NEW
8.0 0.0 0.0 1.23 MB

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

Home Page: https://nullptr-rs.github.io/nullptr-tools

License: GNU General Public License v3.0

Java 100.00%
java library java-libraries i18n docker redis

nullptr-tools's Introduction

๐Ÿ› ๏ธ 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.


Master CI Release License Pages Develop CI

Discussions Issues Pull requests Stars Forks

Deepsource Active Codefactor Deepsource Resolved

๐Ÿ“‚ Available modules

  • ๐Ÿ’ผ Tools: The main module, a basic common tools base used by all other modules.
  • ๐Ÿ“ฆ Redis: A module to interact with Redis, including a connection manager and a Pub/Sub listener system.
  • ๐Ÿณ 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, and in GitHub Packages as fallback.

  • If you are using Gradle, you can get it by adding the following code in your build.gradle:
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, you can get it by adding the following code in your pom.xml:
<project>
    <repositories>
        <!-- My GitHub Packages, as fallback if there is any problem with my Maven Central -->
        <repository>
            <id>github</id>
            <name>GitHub nullptr-rs Apache Maven Packages</name>
            <url>https://maven.pkg.github.com/nullptr-rs/nullptr-tools</url>
            <credentials>
                <username>Your GitHub username</username>
                <password>Your GitHub password or personal access token</password>
            </credentials>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>io.github.nullptr</groupId>
            <artifactId>Module ID</artifactId>
            <version>Latest version</version>
        </dependency>
    </dependencies>
</project>
  • If you don't use any build tool, you can get it by downloading the latest release of your wanted module from GitHub Releases

๐Ÿš€ How to use it

๐Ÿ’ผ Tools

  • ๐Ÿ“ฆ Module ID: 'tools'
  • ๐Ÿ“ Size: ~350Ko
  • ๐Ÿ“… Release date: 2022-03-25
  • ๐Ÿง  Developer: nullptr-rs
  • ๐Ÿ“„ Dependencies: Slf4j API, JetBrains Annotations, Gson
  • ๐Ÿ“ Description: The main module, a basic common tools base used by all other modules.

๐Ÿšฆ Getting started

  • Check the Wiki to learn how to use it.

๐Ÿ“ฆ Redis

  • ๐Ÿ“ฆ Module ID: 'tools-redis'
  • ๐Ÿ“ Size: ~1Mo
  • ๐Ÿ“… Release date: 2022-03-25
  • ๐Ÿง  Developer: nullptr-rs
  • ๐Ÿ“„ Dependencies: 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:
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:
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 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
  • ๐Ÿ“„ Dependencies: Docker Java, Docker 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:
final DockerManager docker = new DockerManager.Builder().withHost(DockerHost.TCP_DAEMON).build();
  • Now you can get the managers for all the Docker commands:
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 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, and ask for help.

๐Ÿ› Find a bug ?

You can open an Issue, describe the problem, and report it.

โญ Support the project

If you like the project, you can leave a star, or consider sponsoring 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 license. To learn more about it and understand what it commits you to, check this page.

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


@nullptr-rs

nullptr-tools's People

Contributors

boul2gom avatar deepsourcebot avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.