[Open Source] A Java-Based Utility Library Designed to Make Development Less Cumbersome, but Simple and Elegant
![[Open Source] A Java-Based Utility Library Designed to Make Development Less Cumbersome, but Simple and Elegant](https://yy123.ink/api/img/1782606974985-dpqoji.jpg)
1. Project Overview
rain-tool
I've always wanted to develop Java elegantly, but Java has many cumbersome coding conventions and syntax rules. To improve work efficiency, developers usually need to create additional utility wrappers for reuse. However, building these utilities from scratch can be quite tedious. That's why rain-tool was born. It is the result of accumulating practical implementations from everyday work and drawing inspiration from excellent open-source libraries, incorporating their outstanding features and implementations. The original goal of rain-tool is to implement the most complex functionality with the simplest possible code, making Java development elegant and enjoyable.
2. Open Source License
Licensed under Apache-2.0
3. Screenshots

4. Feature Overview
The Origin of the Name rain
Spring is an excellent framework in the Java ecosystem. With it, various projects can be built quickly and easily. rain shares this goal, making it equally convenient to build different types of projects. When rain meets Spring, we get Spring Rain (symbolizing: 'The spring breeze quietly enters the night, nourishing all things without a sound').
Included Components
Software Architecture Description
Module
Introduction
rain-core-tool
Core module, including Bean operations, dates, files, reflection, JSON, threads, regular expressions, string processing, and various utility classes.
rain-base-tool
Base module, implementing a Debug console feature and annotation-based references for all components.
rain-crypto-tool
Encryption and decryption module, providing wrappers for symmetric, asymmetric, and digest algorithms.
rain-doc-tool
Documentation module, implementing online API documentation, offline API documentation, and database table design document generation based on Swagger.
rain-hibernate-tool
Hibernate module, encapsulating Hibernate integration and the ability to generate database tables from JavaBeans.
rain-http-tool
HTTP module, encapsulating requests, downloads, and uploads based on HTTP and HTTPS protocols.
rain-light-tool
Lightweight utility module, encapsulating scheduled tasks, email, QR codes, distributed locks, POI documents, Emoji, and more.
rain-log-tool
Logging module, providing automatic detection of logging implementations.
rain-mq-tool
Messaging module, encapsulating messaging implementations based on AMQP and MQTT protocols, including clients such as RabbitMQ and Kafka.
rain-mybatis-tool
MyBatis module, encapsulating MyBatis integration and mapper code generation from database tables.
rain-prop-tool
Prop module, providing configuration file and Properties encapsulation.
rain-redis-tool
Redis module, providing Redis-like command utility classes based on spring-boot-starter-data-redis.
rain-socket-tool
Socket module, encapsulating socket implementations based on BIO, NIO, and AIO, as well as WebSocket.
rain-word-tool
Text module, encapsulating DFA-based multi-keyword searching and word segmentation.
5. Tech Stack
A Java-based utility library designed to make development less cumbersome and more simple and elegant.
Installation Guide
- Download / Clone
- Visit one flying open source: https://code.exmay.com/
- Select a module, then use cd to navigate to the module you want to use.
- Build and install: mvn clean install
- Add the Maven dependency by including the following content in the dependencies section of your project's pom.xml, for example:
<dependency>
<groupId>com.gitee.windsound</groupId>
<artifactId>rain-core-tool</artifactId>
<version>1.0.0</version>
</dependency>
Contributing
Branch Description
The source code of rain is divided into two branches, with the following purposes:
branch
Function
master
Main branch: The branch used for release versions. Its JAR files are identical to those published to the Maven Central Repository. It does not accept any PRs or modifications.
dev
Development branch: Defaults to the SNAPSHOT version of the next release and accepts modifications and PRs.