{"id":21803019,"url":"https://github.com/litongjava/tio-boot","last_synced_at":"2025-06-10T09:03:39.862Z","repository":{"id":105550328,"uuid":"553248558","full_name":"litongjava/tio-boot","owner":"litongjava","description":"tio-boot is a high-performance web framework based on Java AIO and t-io. It's asynchronous, non-blocking, and capable of handling tens of thousands of concurrent connections on a single server. This makes it particularly suitable for the development of high-performance web applications.","archived":false,"fork":false,"pushed_at":"2025-06-02T18:32:46.000Z","size":546,"stargazers_count":16,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-10T09:03:35.637Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tio-boot.litongjava.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/litongjava.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2022-10-18T00:12:59.000Z","updated_at":"2025-06-02T18:32:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"d3beb1d5-35d5-4c02-9876-2b9e0095779b","html_url":"https://github.com/litongjava/tio-boot","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/litongjava%2Ftio-boot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/litongjava%2Ftio-boot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/litongjava%2Ftio-boot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/litongjava%2Ftio-boot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/litongjava","download_url":"https://codeload.github.com/litongjava/tio-boot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/litongjava%2Ftio-boot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259043761,"owners_count":22797159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-27T11:37:14.566Z","updated_at":"2025-06-10T09:03:39.854Z","avatar_url":"https://github.com/litongjava.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tio-Boot\n[English](readme.md) | [中文](readme_cn.md)\n\n## Document\n[Document](https://tio-boot.com/) |\n[gitee](https://gitee.com/ppnt/tio-boot) |\n[github](https://gitee.com/litongjava/tio-boot)\n\n## Overview\n\nTio-Boot is a new generation Java web development framework that is faster, smaller, and simpler! It offers 2 to 3 times higher concurrency, saves 1/3 to 1/2 of memory, starts up 5 to 10 times faster, and reduces package size by 1/2 to 1/10. Built on Java AIO, Tio-Boot enables a 2-core 4G Linux server to handle tens of thousands of concurrent connections.\n\n### Key Features\n\n1. **Based on Java AIO and T-IO:** Utilizes Java asynchronous I/O and T-IO for high efficiency.\n2. **Incorporates Spring-Boot Configuration Principles:** Supports commonly used Spring-Boot annotations without using Spring's IOC and AOP.\n3. **Integrates JFinal AOP:** Supports DI, IOC, and AOP for dependency injection.\n4. **Includes JFinal Enjoy Template Engine and Active Record:** Provides support for database operations and template engine.\n5. **Supports Common Web Components:** Includes interceptors, WebSocket, handlers, and controllers.\n\n### Slogan\n\nSimplicity, ease of use, rapid development, and fast execution.\n\n### Philosophy\n\nStriving for simplicity, returning to basics, staying lightweight, and developing efficiently.\n\n## Pros and Cons\n\n### Advantages\n\n1. **No Servlet:** Uses Java AIO for network connections, supporting asynchronous, non-blocking, and high performance.\n2. **Multi-Protocol Support:** Supports UDP, TCP, HTTP, and WebSocket on a single port.\n3. **Compatible with Embedded Devices:** Can run on Android systems.\n4. **Fast Startup and Small Size:** When providing HTTP service only, the packaged JAR file is 3MB, with a startup time of 300ms.\n5. **Hot Reload Support in Development Environment:** When used with `hotswap-classloader`, it enables reloading within 20ms without restarting the application, significantly improving development efficiency.\n6. **Supports Compilation into Binary Files:** Can be compiled into binary files using GraalVM.\n\n### Resource Optimization\n\n1. **Memory Usage Halved**\n2. **Server Count Halved**\n\n### T-IO Performance Metrics\n\n1. **Performance Test 1:** 1.9G memory stably supports 300,000 TCP long connections. [Details](https://www.tiocloud.com/61)\n2. **Performance Test 2:** T-IO achieves 10.51 million chat messages per second. [Details](https://www.tiocloud.com/41)\n3. **Performance Test 3:** Comparison test results between Netty and T-IO. [Details](https://www.tiocloud.com/154)\n\n### Disadvantages\n\n1. **High Learning Curve:** Requires a solid programming foundation to understand related concepts.\n\nTio-Boot offers developers a high-performance and efficient development tool. However, due to its complex concepts and steep learning curve, a deep programming background is necessary to fully leverage its advantages.\n\n## Quick Start\n\nTio-Boot is available in the Maven repository: [Tio-Boot](https://central.sonatype.com/artifact/com.litongjava/tio-boot)  \n\nAdd the following to your `pom.xml`:\n```xml\n\u003cproperties\u003e\n  \u003cproject.build.sourceEncoding\u003eUTF-8\u003c/project.build.sourceEncoding\u003e\n  \u003cjava.version\u003e1.8\u003c/java.version\u003e\n  \u003cmaven.compiler.source\u003e${java.version}\u003c/maven.compiler.source\u003e\n  \u003cmaven.compiler.target\u003e${java.version}\u003c/maven.compiler.target\u003e\n  \u003ctio-boot.version\u003e1.9.7\u003c/tio-boot.version\u003e\n  \u003cjfinal-aop.version\u003e1.3.6\u003c/jfinal-aop.version\u003e\n\u003c/properties\u003e\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.litongjava\u003c/groupId\u003e\n    \u003cartifactId\u003etio-boot\u003c/artifactId\u003e\n    \u003cversion\u003e${tio-boot.version}\u003c/version\u003e\n  \u003c/dependency\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.litongjava\u003c/groupId\u003e\n    \u003cartifactId\u003ejfinal-aop\u003c/artifactId\u003e\n    \u003cversion\u003e${jfinal-aop.version}\u003c/version\u003e\n  \u003c/dependency\u003e  \n\u003c/dependencies\u003e\n```\n\n### Sample Code\n```java\npackage com.litongjava.tio.web.hello;\n\nimport com.litongjava.jfinal.aop.annotation.AComponentScan;\nimport com.litongjava.tio.boot.TioApplication;\n\n@AComponentScan\npublic class HelloApp {\n  public static void main(String[] args) {\n    long start = System.currentTimeMillis();\n    TioApplication.run(HelloApp.class, args);\n    long end = System.currentTimeMillis();\n    System.out.println((end - start) + \"ms\");\n  }\n}\n```\n\n```java\npackage com.litongjava.tio.web.hello;\n\nimport com.litongjava.tio.http.server.annotation.RequestPath;\n\n@RequestPath(\"/\")\npublic class IndexController {\n  @RequestPath()\n  public String index() {\n    return \"index\";\n  }\n}\n```\n\n## FAQ\nIf you encounter any issues while using Tio-Boot, feel free to reach out using the contact information provided below.\n\n## Contribution Guide\nFeel free to fork the repository and submit a pull request.\n\n## License\n[MIT License](LICENSE)\n\n## Contact Information\n- WeChat: jdk131219\n- Email: litongjava@qq.com\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flitongjava%2Ftio-boot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flitongjava%2Ftio-boot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flitongjava%2Ftio-boot/lists"}