diff --git a/README.md b/README.md
index cb7fe8728936a475f7292e8755fbf29f24874713..16a2b802520b3ba2bc6f8c8f9b5a701c43c722b8 100644
--- a/README.md
+++ b/README.md
@@ -1,129 +1,83 @@
-
-
-
+# C++ Treasure Box (cpp-tbox)
[](LICENSE)
[](https://en.cppreference.com/)
[](https://img.shields.io/badge/platform-linux-lightgrey.svg)
-[[中文]](README_CN.md)
+C++ Treasure Box(简称 cpp-tbox)是一个基于 Reactor 模型的服务导向开发框架和组件库,旨在简化 C++ 开发流程。
-**C++ Treasure Box** is a service-oriented **development framework** and **component library** based on the Reactor model, aim at make C++ development easy.
+## 应用领域
-# Application field
+- **智能硬件**,例如:机器人(扫地机器人、商用服务机器人)、IPC、无人机、车辆等;
+- **边缘计算组件**,例如:智能家居网关、物联网边缘网关等;
+- **服务**,例如:SOCK5、中间件。
-- **Intelligent hardware**, such as: robots (sweepers, commercial service robots), IPC, drones, vehicles, etc.;
-- **Edge computing components**, such as: smart home gateway, IOT edge gateway, etc.;
-- **Service**, such as: SOCK5, Middleware.
+## 特性
-See projects:
+### 1. 基于 Reactor 模型
+采用 Node.js 的 Reactor 模式,主线程处理非阻塞 IO 事件,配合线程池执行大计算和阻塞操作,避免多线程模式下的锁竞争问题,程序稳定可靠。
-- [cpp-socks5](https://github.com/cpp-main/cpp-socks5), learn how to use TCP and how to organize the project;
-- [protocal-adapter](https://github.com/cpp-main/protocal-adapter), learn how to use TCP, UDP, MQTT, UART;
-- [cpp-tbox-for-ros](https://github.com/cpp-main/cpp-tbox-for-ros), learn how to how to integrate into the ROS 2 development environment, and how to use `rclcpp`;
+### 2. 内含 main 框架,开箱即用
+所有与业务无关的工作由内置的 main 框架处理,开发者只需继承 `tbox::main::Module` 类并注册到框架中即可专注于业务代码。
-# Features
+### 3. 具有类 Shell 的命令终端
+通过 telnet 与运行中的服务交互,打印内部数据或执行特定动作,极大降低调试难度。
-## 1. Based on the Reactor
-See the Node.js Reactor pattern.
-The main thread handles non-blocking IO events in Reactor mode, and cooperates with ThreadPool to perform large calculations and blocking operations.
-
-This mode avoids the annoyance of competing locking in multi-thread mode, and the program is stable and reliable.
+### 4. 完备的日志系统
+支持 stdout、syslog 和文件日志三种输出方式,支持运行时动态设置日志级别和过滤规则,日志内容包含级别、时间、线程号、模块名、函数名、文件名、行号等信息。
-## 2. Contains main framework, easy to use
-All non-business-related work is handled using the built-in main framework. You don't need to care about such trivial things as how to output the log, how to parse the parameters, how to exit the program, and how to write the main function. The main frame is all handled for you.
-You only need to derive the `tbox::main::Module` class, fill in the business code, and then register to the framework.
-
+### 5. 灵活的参数系统
+支持 JSON 格式的运行参数,包括整数、浮点数、字符串、数组和组合参数,支持配置文件和命令行参数混合使用。
-## 3. With Shell-like terminal
-You can interact with the running service through telnet, make it print internal data, or perform specific actions. This greatly reduces the difficulty of debugging.
-
+### 6. 跨线程任务委派,无需加锁
+主线程与子线程之间可以安全地互相委派任务执行,无需手动加锁。
-## 4. With completely log system
-**1) There are three log sink: stdout + filelog + syslog**
+### 7. 支持优雅的退出流程
+收到 SIGINT、SIGTERM、SIGQUIT、SIGPWR 等信号时,执行有序退出流程,释放资源,确保程序完整性。
-- stdout,Output the log to the terminal via `std::cout`;
-- syslog,Output logs to syslog via `syslog()`;
-- filelog,Write the log to the specified directory, in the format: `.YYMMDD_HHMMSS..log`. If the file size exceeds 1M, a new log file will be created. Due to the low efficiency of writing files, the output channel adopts the front-end and back-end modes.
+### 8. 全面的异常捕获机制
+框架会捕获程序异常(如段错误、断言失败、总线错误等),并在日志中打印完整的调用栈,便于分析崩溃问题。
-One or more of the three sink can be selected in the startup parameters, and can also be changed through the terminal during operation.
+### 9. 可视化的运行跟踪模块
+支持记录函数执行时间和持续时间,可导出火焰图进行性能分析和事件阻塞问题排查。
-**2) Different level different color**
-The log content includes: level, time (accurate to microseconds), thread number, module name, function name, text, file name, line number.
-It is convenient and quick to locate the problem.
-
-As shown in the figure above, different log levels are clearly distinguished by colors. In particular, for anomalies, red and yellow are used together with highlighting, making them very eye-catching.
+### 10. 简单易用的状态机
+采用组合方式实现状态机,摒弃传统状态模式的繁琐继承,支持导出状态机图,实现所见即所得。
-**3) Flexible log output filter**
-The log level can be set separately for different modules when the program is running, as follows:
-
+### 11. 可视化的行为树
+包含事件驱动的行为树,支持顺序、分支和循环动作流程,支持实时导出可视化树状图。
-## 5. Flexible parameter system
-Parameters are provided in JSON format, and any format of running parameters can be passed in, including: integers, decimals, strings, arrays, and combination parameters, meeting almost all parameter passing requirements:
-
-You can use `-c your_cfg_file.json` to import a configuration file in JSON format at execution time. At the same time, you can also use `-s 'xx.yy.zz=vvv'` to specify parameters temporarily.
-The configuration file in JSON format also supports the include command to include other configuration files when loading.
+### 12. 丰富的组件库
-## 6. Assign tasks across threads without locking
-The child thread entrusts the main thread to execute:
-
-The main thread entrusts the child thread to execute:
-
-
-## 7. Graceful exit process
-When receiving signals: SIGINT, SIGTERM, SIGQUIT, SIGPWR, it will execute the exit process in an orderly manner and release resources. Do a clean exit.
-
-This is crucial for ensuring program integrity and conducting memory analysis.
-
-## 8. Comprehensive exception capture mechanism
-When various program exceptions occur in the program, such as: segment fault, assertion, bus error, exception not caught, etc., the framework will capture and print the complete call stack in the log system. Facing program crashes, no longer look blank. The effect is as follows:
-
-With this mechanism in place, analyzing program crash issues of online devices becomes very simple, and there is basically no need to use gdb to analyze coredumps.
-
-## 9. Visualized trace module
-The trace module can record the time and duration of each execution of the marked function, and can export the icicle diagram for display:
-
-It is a great tool for performance analysis and event blocking problem troubleshooting.
-
-## 10. Simple and visualized state machine
-It abandons the cumbersome inheritance and derivation of the traditional state mode, and uses it directly in a combined way, which is simple and convenient. It can also export the state machine diagram to achieve what you see is what you get:
-
-
-## 11. Visualized behavior tree
-It contains an event-driven behavior tree that can realize sequential, branching, and cyclic action processes in an asynchronous environment, and can export a visual tree diagram in real time:
-
-
-## 12. Rich components
-
-| Name | What |
+| 组件名 | 功能 |
|:----:|:----|
-| base | Including log printing, common tools, etc. |
-| util | Accessibility module |
-| event | Realized IO, Timer, Signal three kinds of event-driven, which is the heart of the whole framework |
-| eventx | Including ThreadPool thread pool, WorkThread worker thread, TimerPool timer pool and other modules |
-| log | Realized efficient and reliable terminal, syslog, and log output in the form of files |
-| trace | Realized outputting traces to files in real time |
-| network | Realized serial port, terminal, UDP, TCP communication module |
-| terminal | A shell-like command terminal that enables command interaction with programs during runtime |
-| **main** | Realized a complete program startup process and framework, so that developers only need to care about business code |
-| run | It's an ELF. It loads one or more lib\*.so file which specified by parameter `-l xxx`, then run Modules in side |
-| mqtt | MQTT Client |
-| coroutine | coroutine function |
-| http | Implemented HTTP Server and Client modules on the basis of network |
-| alarm | Realized 4 commonly used alarm clocks: CRON alarm clock, single alarm clock, weekly cycle alarm clock, weekday alarm clock |
-| flow | Contains multi-level state machine and behavior tree to solve the problem of action flow in asynchronous mode |
-| crypto | Implemented the commonly used AES and MD5 encryption and decryption calculations |
-| dbus | Implemented the function of integrating dbus into event to process transactions in a non-blocking manner |
-
-# Environment
-
-- Linux series operating system;
-- C++11 or above.
-
-# Download & build
-
-## Prepare
-```
+| base | 包括日志打印、常用工具等 |
+| util | 提供辅助模块 |
+| event | 实现 IO、Timer、Signal 三种事件驱动,是整个框架的核心 |
+| eventx | 包括线程池、工作线程、定时器池等模块 |
+| log | 实现终端、syslog 和文件日志输出 |
+| trace | 实现实时跟踪信息输出到文件 |
+| network | 实现串口、终端、UDP、TCP 通信模块 |
+| terminal | 类 Shell 命令终端,支持运行时命令交互 |
+| **main** | 实现完整的程序启动流程和框架,开发者只需关注业务代码 |
+| run | 加载指定的 `.so` 文件并运行其中的模块 |
+| mqtt | MQTT 客户端 |
+| coroutine | 协程函数 |
+| http | 基于 network 实现 HTTP 服务端和客户端 |
+| alarm | 实现 4 种常用定时器:CRON 定时器、单次定时器、每周循环定时器、工作日定时器 |
+| flow | 包含多级状态机和行为树,解决异步模式下的动作流问题 |
+| crypto | 实现常用的 AES 和 MD5 加密解密计算 |
+| dbus | 实现 DBus 集成,以非阻塞方式处理事务 |
+
+## 环境要求
+
+- Linux 系列操作系统;
+- C++11 或以上版本。
+
+## 下载与构建
+
+### 准备工作
+```bash
sudo apt update
sudo apt install build-essential
sudo apt install libgtest-dev libgmock-dev
@@ -134,73 +88,53 @@ git clone https://gitee.com/cpp-master/cpp-tbox.git
cd cpp-tbox
```
-## Using GNU Make
-```
+### 使用 GNU Make 构建
+```bash
make 3rd-party modules RELEASE=1
```
-After completion, the header files and library files are in the .staging directory.
-Of course, you can also specify the generation path of header files and library files by specifying `STAGING_DIR`.
-like:
-```
+构建完成后,头文件和库文件位于 `.staging` 目录。可通过 `STAGING_DIR` 指定输出路径:
+```bash
make 3rd-party modules RELEASE=1 STAGING_DIR=$HOME/.tbox
```
-After completion, the header files and library files are in the $HOME/.tbox path.
-## Using CMake
-```
+### 使用 CMake 构建
+```bash
cmake -B build
cmake --build build
cmake --install build
```
-Customize the installation directory by specifying `CMAKE_INSTALL_PREFIX` (installed in /usr/local by default):
-```
+可通过 `CMAKE_INSTALL_PREFIX` 指定安装目录(默认 `/usr/local`):
+```bash
cmake -B build -DCMAKE_INSTALL_PREFIX=$HOME/.tbox
```
-# Tutorial
-For details on how to use cpp-tbox to develop your own programs, see the tutorial:
-[cpp-tbox-tutorials](https://github.com/cpp-main/cpp-tbox-tutorials/blob/master/README.md)
+## 使用教程
+有关如何使用 cpp-tbox 开发程序的详细信息,请参阅:
+[cpp-tbox-tutorials](https://github.com/cpp-main/cpp-tbox-tutorials/blob/master/README.md)
-For example to use `find_package`:
-```
-cmake_minimum_required(VERSION 3.10)
-project(tbox-find_package)
-find_package(tbox COMPONENTS base util alarm event eventx)
-add_executable(demo main.cpp)
-target_link_libraries(demo PRIVATE tbox::tbox_base tbox::tbox_util tbox::tbox_alarm tbox::tbox_event tbox::tbox_eventx)
-```
-
-# Dependencies
+## 依赖库
-| Name | Dependent module | Required | Use | Install |
+| 依赖库 | 依赖模块 | 是否必需 | 用途 | 安装命令 |
|:----:|:--------:|:--:|:----:|:--------:|
-| libgtest-dev | all | no | unit testing | sudo apt install libgtest-dev |
-| libgmock-dev | all | no |unit testing | sudo apt install libgmock-dev |
-| libmosquitto-dev | mqtt | no | MQTT | sudo apt install libmosquitto-dev |
-| libdbus-1-dev | dbus | no | DBus | sudo apt install libdbus-1-dev |
-
-# Configure
-
-Open the config.mk file, you don’t need to block the modules corresponding to `app_y += xxx`, but pay attention to the dependencies between modules.
-
-# License
-
-[MIT](LICENSE), Free for use.
-
-# Feedback
-
-- Issue: Any questions are welcome to communicate in issue
-- WeChat: hevake\_lee (Note: cpp-tbox)
-- QQ Group: 738084942 (cpp-tbox 技术交流)
-
-# Encourage us
-
-If this project makes your work easier and you leave work earlier, please give me more encouragement.
-You can do these:
-
-- Light up three combos for it: Star, Watch, Fork;
-- Recommend to colleagues and partners around you, and recommend to your readers in technical forums;
-- Join the above QQ group, add me on WeChat to enter the WeChat group;
-- Positive feedback on issues and suggestions;
-- Participate in the development of the project and contribute your strength;
-- Let me know which projects it is used in;
+| libgtest-dev | 所有模块 | 否 | 单元测试 | sudo apt install libgtest-dev |
+| libgmock-dev | 所有模块 | 否 | 单元测试 | sudo apt install libgmock-dev |
+| libmosquitto-dev | mqtt | 否 | MQTT | sudo apt install libmosquitto-dev |
+| libdbus-1-dev | dbus | 否 | DBus | sudo apt install libdbus-1-dev |
+
+## 配置
+打开 `config.mk` 文件,无需阻断 `app_y += xxx` 对应的模块,但需注意模块之间的依赖关系。
+
+## 许可证
+本项目采用 [MIT](LICENSE) 许可证,可免费使用。
+
+## 反馈与支持
+- **Issue**: 欢迎在 Issue 中提出任何问题
+- **微信**: hevake_lee(备注:cpp-tbox)
+- **QQ 群**: 738084942(cpp-tbox 技术交流)
+
+## 鼓励我们
+如果这个项目让你的工作更轻松,请给予我们更多鼓励:
+- 为项目点亮 Star、Watch、Fork;
+- 向同事、合作伙伴或技术论坛推荐本项目;
+- 加入上述 QQ 群或微信,参与项目开发并贡献代码;
+- 告诉我们你正在使用的项目。
\ No newline at end of file