{"id":15523265,"url":"https://github.com/xuxueli/xxl-tool","last_synced_at":"2026-06-13T07:02:34.204Z","repository":{"id":39939830,"uuid":"103214102","full_name":"xuxueli/xxl-tool","owner":"xuxueli","description":"a series of tools that make Java development more efficient.（Java工具类库XXL-TOOL）","archived":false,"fork":false,"pushed_at":"2026-06-12T21:15:35.000Z","size":693,"stargazers_count":486,"open_issues_count":1,"forks_count":184,"subscribers_count":28,"default_branch":"master","last_synced_at":"2026-06-12T23:10:31.560Z","etag":null,"topics":["emoji","excel","fiber","java","json","tool","translating-java-objects","util","xxl"],"latest_commit_sha":null,"homepage":"http://www.xuxueli.com/xxl-tool/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xuxueli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://www.xuxueli.com/page/donate.html"]}},"created_at":"2017-09-12T02:51:27.000Z","updated_at":"2026-06-12T21:16:18.000Z","dependencies_parsed_at":"2024-04-13T19:38:10.585Z","dependency_job_id":"c8ca9713-f6da-4599-841b-ed0e3bfad69b","html_url":"https://github.com/xuxueli/xxl-tool","commit_stats":null,"previous_names":["xuxueli/xxl-excel"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/xuxueli/xxl-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xuxueli%2Fxxl-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xuxueli%2Fxxl-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xuxueli%2Fxxl-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xuxueli%2Fxxl-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xuxueli","download_url":"https://codeload.github.com/xuxueli/xxl-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xuxueli%2Fxxl-tool/sbom","scorecard":{"id":1237956,"data":{"date":"2025-07-28","repo":{"name":"github.com/xuxueli/xxl-tool","commit":"e7d3b8d498894dcc2c09d9a15914d09bdd415b0b"},"scorecard":{"version":"v5.2.1-26-g4feedb85","commit":"4feedb857ab8d82158aa9774bf8054df41992180"},"score":4.1,"checks":[{"name":"Maintained","score":10,"reason":"28 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/maven.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/xuxueli/xxl-tool/maven.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/xuxueli/xxl-tool/maven.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v","Warn: Project is vulnerable to: GHSA-4gc7-5j7h-4qph","Warn: Project is vulnerable to: GHSA-4wp7-92pw-q264"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-09-21T08:33:41.940Z","repository_id":39939830,"created_at":"2025-09-21T08:33:41.940Z","updated_at":"2025-09-21T08:33:41.940Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34275068,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emoji","excel","fiber","java","json","tool","translating-java-objects","util","xxl"],"created_at":"2024-10-02T10:44:16.981Z","updated_at":"2026-06-13T07:02:34.193Z","avatar_url":"https://github.com/xuxueli.png","language":"Java","funding_links":["https://www.xuxueli.com/page/donate.html"],"categories":["工具库"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://www.xuxueli.com/project/static/xxl-job/images/xxl-logo.jpg\" width=\"150\"\u003e\n    \u003ch3 align=\"center\"\u003eXXL-TOOL\u003c/h3\u003e\n    \u003cp align=\"center\"\u003e\n        XXL-TOOL, a series of tools that keep Java efficient.\n        \u003cbr\u003e\n        \u003ca href=\"https://www.xuxueli.com/xxl-tool/\"\u003e\u003cstrong\u003e-- Home Page --\u003c/strong\u003e\u003c/a\u003e\n        \u003cbr\u003e\n        \u003cbr\u003e\n        \u003ca href=\"https://github.com/xuxueli/xxl-tool/actions\"\u003e\n            \u003cimg src=\"https://github.com/xuxueli/xxl-tool/workflows/Java%20CI/badge.svg\" \u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://central.sonatype.com/artifact/com.xuxueli/xxl-tool\"\u003e\n            \u003cimg src=\"https://img.shields.io/maven-central/v/com.xuxueli/xxl-tool\" \u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/xuxueli/xxl-tool/releases\"\u003e\n            \u003cimg src=\"https://img.shields.io/github/release/xuxueli/xxl-tool.svg\" \u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/xuxueli/xxl-tool/\"\u003e\n            \u003cimg src=\"https://img.shields.io/github/stars/xuxueli/xxl-tool\" \u003e\n        \u003c/a\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/xuxueli/xxl-tool.svg\" \u003e\n        \u003ca href=\"https://www.xuxueli.com/page/donate.html\"\u003e\n            \u003cimg src=\"https://img.shields.io/badge/%24-donate-ff69b4.svg?style=flat-square\" \u003e\n        \u003c/a\u003e\n    \u003c/p\u003e    \n\u003c/p\u003e\n\n\n## Introduction\nXXL-Tool is a Java tool library that makes Java development more efficient. The tools include \"date、collection、string、IO、cache、concurrency、Excel, Emoji、Pipeline、Http、Json、JsonRpc、Encrypt、Auth、ID、Serializer、Captcha, RateLimiter、BloomFilter...\" and so on.\n\nXXL-TOOL 是一个Java工具类库，致力于让Java开发更高效。包含 “日期、集合、字符串、IO、缓存、并发、Excel、Emoji、Response、Pipeline、Http、Json、JsonRpc、Encrypt、Auth、ID、Serializer、验证码、限流器、BloomFilter...” 等数十个模块。\n\n\n## Documentation\n- [中文文档](https://www.xuxueli.com/xxl-tool/)\n\n\n## Communication\n- [社区交流](https://www.xuxueli.com/page/community.html)\n\n\n## Modules\n| 模块                 | 说明\n|--------------------| ---------------\n| Core模块             | 包含 集合、缓存、日期、反射、断言、正则……等基础工具。\n| Cache模块            | 一个高性能的 Java 缓存工具，支持多种缓存类型（FIFO、LFU、LRU等）、锁分桶优化、缓存过期策略（写后过期、访问后过期...）、缓存定时清理、缓存加载器、缓存监听器、缓存信息统计...等功能。\n| IO模块               | 一系列处理IO（输入/输出）操作的工具，包括 FileTool、CsvTool、IOTool...等。\n| Concurrent模块       | 一系列并发编程工具，具备良好的线程安全、高并发及高性能优势，包括MessageQueue（高性能内存队列，30W+ TPS）、CyclicThread（后台循环线程）、TimeWheel（时间轮组件）、TokenBucket（令牌桶/限流器）等。\n| Http模块             | 一系列处理Http通讯、IP、Cookie等相关工具。\n| Json模块             | json序列化、反序列化工具封装，基于Gson。\n| JsonRpc模块          | 一个轻量级、跨语言远程过程调用实现，基于json、http实现（对比传统RPC框架：[XXL-RPC](https://github.com/xuxueli/xxl-rpc)）。\n| Excel模块            | 一个灵活的Java对象和Excel文档相互转换的工具。一行代码完成Java对象和Excel之间的转换。\n| Emoji模块            | 一个灵活可扩展的Emoji表情编解码库，可快速实现Emoji表情的编解码。\n| Response模块         | 统一响应数据结构体，标准化数据结构、状态码等，降低协作成本。\n| Pipeline模块         | 高扩展性流程编排引擎。\n| Error模块            | 异常处理相关工具，包括通用业务异常封装、异常工具类等；\n| Freemarker模块       | 模板引擎工具，支持根据模板文件实现 动态文本生成、静态文件生成 等，支持邮件发送、网页静态化场景。\n| Crypto模块           | 一系列处理编解码、加解密的工具，包括 Md5Tool、Sha256Tool、HexTool、Base64Tool...等。\n| Auth模块             | 一系列权限认证相关工具，包括JwtTool...等。\n| ID模块               | 一系列ID生成工具，支持多种ID生成策略，包括 UUID、Snowflake、Date、Random 等。\n| Serializer模块       | 一系列序列化、反序列化工具，支持扩展多种序列化格式，包括 jdk、protobuf、hessian 等。\n| Captcha模块          | 一个验证码工具，支持随机字符验证码、数字验证码、中文验证码等多形式。支持自定义验证码生成算法、宽高、颜色、文字字体/大小/间距、背景颜色、边框宽度/边框、干扰策略…等。\n| DataStructure模块    | 一系列数据结构工具，包括 BloomFilter、Trie/前缀树...等； \n| ...                | ...\n\n\n## Tool List\n| 模块              | 工具               |  说明                                  \n|-----------------|------------------|-------------------------------------|\n| core            | StringTool       | 字符串工具，提供字符串校验及操作相关能力\n| core            | DateTool         | 日期时间工具，提供日期时间转换及操作相关能力\n| core            | AssertTool       | 断言工具，提供有效性校验能力\n| core            | CollectionTool   | 集合工具，提供集合操作能力\n| core            | ArrayTool        | 数组工具，提供集合操作能力\n| core            | MapTool          | Map 工具，提供Map操作能力\n| core            | ObjectTool       | Object工具，提供Object操作能力\n| core            | PropTool         | Prop工具，提供Properties文件操作能力\n| core            | ReflectionTool   | Java反射工具，提供Java反射操作能力\n| core            | ClassTool        | Class类工具，提供Class类操作能力\n| core            | TypeTool         | Type工具，提供Type操作能力\n| core            | RegexTool        | 正则工具，提供正则校验及操作能力\n| auth            | JwtTool          | JWT工具，提供JWT生成及解析能力\n| cache           | CacheTool        | 一个高性能的 Java 缓存工具，支持多种缓存类型（FIFO、LFU、LRU等）、锁分桶优化、缓存过期策略（写后过期、访问后过期...）、缓存定时清理、缓存加载器、缓存监听器、缓存信息统计...等功能。\n| concurrent      | CyclicThread     | 后台循环线程，支持精准、线程安全的周期性循环执行能力\n| concurrent      | MessageQueue     | 高性能内存队列，单机支持 30W+ TPS\n| concurrent      | TimeWheel        | 时间轮组件，提供定时任务执行能力\n| concurrent      | TokenBucket      | 令牌桶/限流器组件，提供令牌桶限流能力\n| emoji           | EmojiTool        | Emoji表情工具，提供Emoji表情编解码能力\n| crypto          | Base64Tool       | Base64工具，提供Base64编解码能力\n| crypto          | HexTool          | Hex工具，提供Hex编解码能力\n| crypto          | Md5Tool          | MD5工具，提供MD5编码能力\n| crypto          | SHA256Tool       | SHA256工具，提供SHA256编码能力\n| excel           | ExcelTool        | 一个基于注解的 Excel 与 Java对象 相互转换及导入导出工具；一行代码完成Java对象和Excel之间的转换。\n| exception       | BizException     | 通用业务异常\n| exception       | ThrowableTool    | 异常处理工具\n| freemarker      | FtlTool          | 模板引擎工具, 支持根据模板文件实现 动态文本生成、静态文件生成 等，支持邮件发送、网页静态化场景。\n| json            | GsonTool         | Json序列化及反序列化工具，基于Gson\n| http            | CookieTool       | Cookie工具，提供Cookie读写操作能力\n| http            | HttpTool         | 一个高性能 HTTP 请求库，API简洁易用、使用高效方便且性能优越；支持 “普通Http请求、Java对象请求、接口\u0026注解请求、文件下载” 等多种使用方式。\n| http            | IPTool           | IP工具，提供IP地址及端口号相关校验、生成及操作相关能力\n| io              | IOTool           | IO工具，提供丰富IO读写操作能力\n| io              | FileTool         | 一个高性能 File/文件 操作工具，支持丰富文件操作API；针对大文件读写设计分批操作、流式读写能力，降低内存占用、提升文件操作性能。\n| io              | CsvTool          | Csv工具，提供Csv文件读写操作能力\n| jsonrpc         | JsonRpcClient    | 轻量级RPC通讯工具，客户端实现；基于json、http实现\n| jsonrpc         | JsonRpcServer    | 轻量级RPC通讯工具，服务端实现；基于json、http实现\n| pipeline        | PipelineExecutor | Pipeline执行工具，提供pipeline注册管理以及执行相关能力\n| pipeline        | Pipeline         | Pipeline工具，提供pipeline定义及执行相关能力\n| response        | Response         | 标准响应结果封装，统一服务端数据返回格式\n| response        | ResponseCode     | 标准响应码定义，统一服务端响应码体系\n| response        | PageModel        | 标准分页结果封装，统一服务端分页数据格式\n| id              | DateIdTool       | ID生成工具，根据日期趋势递增生成ID；\n| id              | RandomIdTool     | ID生成工具，随机数字、字母、混合字符生成工具；\n| id              | SnowflakeIdTool  | ID生成工具，雪花算法ID生成工具；\n| id              | UUIDTool         | ID生成工具，UUID生成工具；\n| captcha         | CaptchaTool      | 验证码工具，提供验证码生成能力；\n| datastructure   | BloomFilter      | 布隆过滤器，一种基于多哈希函数和位数组的概率型数据结构，具有高效空间利用与快速查询特性；\n| datastructure   | Trie             | 前缀数，一种哈希树的变种，利用公共前缀来节省存储空间和提高查询效率；\n| ...             | ...              \n\n\n## Development\nXXL-TOOL 前身为  XXL-EXCEL、XXL-EMOJI 两个独立项目，以及 XXL-JOB 内部经过验证的成熟工具类等，经过整合演进最终诞生。\n- 1、XXL-EXCEL：首版发布于2017年9月，一个灵活的Java对象和Excel文档相互转换的工具。一行代码完成Java对象和Excel文档之间的转换。同时保证性能和稳定。（已废弃，整合至 XXL-TOOL）\n- 2、XXL-EMOJI：首版发布于2018年7月，一个灵活可扩展的Emoji表情编解码库，可快速实现Emoji表情的编解码。（已废弃，整合至 XXL-TOOL）\n\n## Contributing\nContributions are welcome! Open a pull request to fix a bug, or open an [Issue](https://github.com/xuxueli/xxl-tool/issues/) to discuss a new feature or change.\n\n欢迎参与项目贡献！比如提交PR修复一个bug，或者新建 [Issue](https://github.com/xuxueli/xxl-tool/issues/) 讨论新特性或者变更。\n\n## 接入登记\nMore companies that have integrated are welcome to register at [registration link](https://github.com/xuxueli/xxl-tool/issues/1). Registration is solely for product promotion purposes.\n\n更多接入的公司，欢迎在 [登记地址](https://github.com/xuxueli/xxl-tool/issues/1 ) 登记，登记仅仅为了产品推广。\n\n\n## Copyright and License\nThis product is open source and free, and will continue to provide free community technical support. Individual or enterprise users are free to access and use.\n\n- Licensed under the Apache License, Version 2.0.\n- Copyright (c) 2015-present, xuxueli.\n\n产品开源免费，并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。\n\n\n## Donate\nXXL-TOOL is an open source and free project, with its ongoing development made possible entirely by the support of these awesome backers.\n\nXXL-TOOL 是一个开源且免费项目，其正在进行的开发完全得益于支持者的支持。开源不易，[前往赞助项目开发](https://www.xuxueli.com/page/donate.html )\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxuxueli%2Fxxl-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxuxueli%2Fxxl-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxuxueli%2Fxxl-tool/lists"}