JQuick
A lightweight Java framework collection — pure Java, zero heavyweight dependencies, declarative first. HTTP requests, PDF reports, JSON paths, rule engine, SQL and Excel.
Introduction
JQuick is a lightweight open-source framework collection for enterprise Java applications. Every module is pure Java, free of heavyweight dependencies and declarative first, so it can be added on its own or embedded into an existing system.
- Pure JavaThe core modules do not rely on JNI and run identically on Windows, Linux, macOS and domestic Chinese operating systems such as Kylin, UOS and openEuler.
- No heavyweight dependenciesEach module can be adopted independently, with no binding to Spring or any other heavy container and no runtime agent or extra middleware.
- Declarative firstDescribe rules and requests with XML, annotations or a DSL so business code and configuration stay decoupled — change the configuration to change the behaviour.
Architecture
The modules fall into four layers: runtime and data capabilities underneath, business-facing tools on top. Each module can be adopted on its own, or combined along a data flow to cover a whole pipeline.
A typical data flow
Chained together, the data-layer modules form a lightweight ETL that moves no data. Take an orders table in MySQL that has to become a reconciliation report: the connector pulls, the dataset holds, SQL joins, transform functions clean, and the result is exported to Excel or PDF.
- IngestJQuick-ConnectorJDBC, CSV, Excel, JSON, Redis and HTTP — 22 source types, all read into an in-memory dataset.
- HoldJQuickDataSetColumn metadata plus rows, with filter, sort, paging, grouping and joins.
- QueryJQuick-SqlRegister datasets as tables and run standard SQL for filtering, aggregation and multi-table joins.
- ShapeJQuick-Transform259 built-in functions for type conversion, code translation and masking, callable straight from SQL.
- DeliverJQuick-Excel · JQuick-PdfExport the dataset as a workbook via toMapList(), or render it into a PDF from an HTML template.
The whole chain runs inside a single JVM — no middleware, and no need to load the data into a separate database first.
Ecosystem
Open a card to read the module documentation. Projects marked “Docs coming soon” can be explored on the GitHub organisation in the meantime.
- JQuick-CurlAn HTTP client in the spirit of curl: describe the request with a curl command and call it as a Java method.
- JQuick-PdfA pure Java PDF toolkit: HTML/CSS-style templates plus 30+ vector chart types, with no browser and no WebKit.
- JQuick-PathXPath for JSON: locate, filter and map deeply nested JSON into Java beans with path expressions.
- JQuick-JavaA lightweight Java-like scripting language and rule engine. Rules are declared in XML or inline scripts and can be hot-adjusted at runtime.
- JQuick-SqlParse SQL into an AST, rewrite the logic and run it with an embedded engine — parsing, auditing and dynamic assembly in one place.
- JQuick-ExcelDeclarative xls/xlsx import and export: mapping, validation, formulas, styles, charts and footers are all described by a DSL.
- JQuick-ConnectorQuery databases, files, caches and HTTP endpoints into one in-memory dataset with a SQL-like syntax.
- JQuick-TransformThe ecosystem's universal data-transform library: 200+ built-in functions and native SPI extension, embeddable in SQL and Excel import/export.
- JQuick-AsmA JQuick ecosystem module. Documentation is being written — see the GitHub organisation for the source code.
- JQuick-GrpcA JQuick ecosystem module. Documentation is being written — see the GitHub organisation for the source code.
Quick start
Using JQuick-Curl as an example: add the dependency, describe the request with a curl command and call it as a Java method. For another module just replace the artifactId with jquick-pdf, jquick-sql or jquick-excel.
<dependency> <groupId>io.github.paohaijiao</groupId> <artifactId>jquick-curl</artifactId> <version>2.6.0</version></dependency>implementation 'io.github.paohaijiao:jquick-curl:2.6.0'import com.github.paohaijiao.anno.JCurlCommand;import com.github.paohaijiao.domain.req.JQuickCurlReq;import com.github.paohaijiao.executor.JCurlInvoker;
public interface UserApi {
@JCurlCommand("curl -X GET https://httpbin.org/get") String list(JQuickCurlReq request);}
public class Demo {
public static void main(String[] args) throws Exception { UserApi api = JCurlInvoker.createProxy(UserApi.class); System.out.println(api.list(new JQuickCurlReq())); }}Contact
Reach out for questions, feedback or business cooperation — filing an issue on GitHub works too.
- WhatsApp+60 11-6236 6686 Open WhatsApp
- Email[email protected]Send email
- WeChat Official Account
Scan the QR code for release notes and usage tips - Author on WeChat
Scan the QR code to contact the author