gitextract_sj2a21rt/ ├── .editorconfig ├── .github/ │ └── workflows/ │ ├── ci.yml │ └── xmake.yml ├── .gitignore ├── BUILD ├── CMakeLists.txt ├── CMakeLists_Headers.txt ├── CODE_OF_CONDUCT.md ├── GNUmakefile ├── LICENSE ├── LICENSE_GPLV2 ├── README.md ├── README_cn.md ├── WORKSPACE ├── benchmark/ │ ├── CMakeLists.txt │ ├── GNUmakefile │ ├── README.md │ ├── benchmark-01-http_server.cc │ ├── benchmark-02-http_server_long_req.cc │ ├── util/ │ │ ├── args.h │ │ ├── content.h │ │ └── date.h │ └── xmake.lua ├── docs/ │ ├── about-conditional.md │ ├── about-config.md │ ├── about-connection-context.md │ ├── about-counter.md │ ├── about-dns.md │ ├── about-error.md │ ├── about-exit.md │ ├── about-go-task.md │ ├── about-module.md │ ├── about-resource-pool.md │ ├── about-selector.md │ ├── about-service-governance.md │ ├── about-timeout.md │ ├── about-timer.md │ ├── about-tlv-message.md │ ├── about-upstream.md │ ├── benchmark.md │ ├── bugs.md │ ├── en/ │ │ ├── CONTRIBUTING.md │ │ ├── about-config.md │ │ ├── about-connection-context.md │ │ ├── about-counter.md │ │ ├── about-dns.md │ │ ├── about-error.md │ │ ├── about-exit.md │ │ ├── about-go-task.md │ │ ├── about-module.md │ │ ├── about-resource-pool.md │ │ ├── about-service-governance.md │ │ ├── about-timeout.md │ │ ├── about-timer.md │ │ ├── about-tlv-message.md │ │ ├── about-upstream.md │ │ ├── tutorial-01-wget.md │ │ ├── tutorial-02-redis_cli.md │ │ ├── tutorial-03-wget_to_redis.md │ │ ├── tutorial-04-http_echo_server.md │ │ ├── tutorial-05-http_proxy.md │ │ ├── tutorial-06-parallel_wget.md │ │ ├── tutorial-07-sort_task.md │ │ ├── tutorial-08-matrix_multiply.md │ │ ├── tutorial-09-http_file_server.md │ │ ├── tutorial-10-user_defined_protocol.md │ │ ├── tutorial-11-graph_task.md │ │ ├── tutorial-12-mysql_cli.md │ │ ├── tutorial-13-kafka_cli.md │ │ └── xmake.md │ ├── tutorial-01-wget.md │ ├── tutorial-02-redis_cli.md │ ├── tutorial-03-wget_to_redis.md │ ├── tutorial-04-http_echo_server.md │ ├── tutorial-05-http_proxy.md │ ├── tutorial-06-parallel_wget.md │ ├── tutorial-07-sort_task.md │ ├── tutorial-08-matrix_multiply.md │ ├── tutorial-09-http_file_server.md │ ├── tutorial-10-user_defined_protocol.md │ ├── tutorial-11-graph_task.md │ ├── tutorial-12-mysql_cli.md │ ├── tutorial-13-kafka_cli.md │ ├── tutorial-15-name_service.md │ ├── tutorial-17-dns_cli.md │ ├── tutorial-18-redis_subscriber.md │ ├── tutorial-19-dns_server.md │ └── xmake.md ├── src/ │ ├── CMakeLists.txt │ ├── client/ │ │ ├── CMakeLists.txt │ │ ├── WFConsulClient.cc │ │ ├── WFConsulClient.h │ │ ├── WFDnsClient.cc │ │ ├── WFDnsClient.h │ │ ├── WFHttpChunkedClient.cc │ │ ├── WFHttpChunkedClient.h │ │ ├── WFKafkaClient.cc │ │ ├── WFKafkaClient.h │ │ ├── WFMySQLConnection.cc │ │ ├── WFMySQLConnection.h │ │ ├── WFRedisSubscriber.cc │ │ ├── WFRedisSubscriber.h │ │ └── xmake.lua │ ├── factory/ │ │ ├── CMakeLists.txt │ │ ├── DnsTaskImpl.cc │ │ ├── FileTaskImpl.cc │ │ ├── HttpTaskImpl.cc │ │ ├── HttpTaskImpl.inl │ │ ├── KafkaTaskImpl.cc │ │ ├── KafkaTaskImpl.inl │ │ ├── MySQLTaskImpl.cc │ │ ├── RedisTaskImpl.cc │ │ ├── RedisTaskImpl.inl │ │ ├── WFAlgoTaskFactory.h │ │ ├── WFAlgoTaskFactory.inl │ │ ├── WFConnection.h │ │ ├── WFGraphTask.cc │ │ ├── WFGraphTask.h │ │ ├── WFMessageQueue.cc │ │ ├── WFMessageQueue.h │ │ ├── WFOperator.h │ │ ├── WFResourcePool.cc │ │ ├── WFResourcePool.h │ │ ├── WFTask.h │ │ ├── WFTask.inl │ │ ├── WFTaskError.h │ │ ├── WFTaskFactory.cc │ │ ├── WFTaskFactory.h │ │ ├── WFTaskFactory.inl │ │ ├── Workflow.cc │ │ ├── Workflow.h │ │ └── xmake.lua │ ├── kernel/ │ │ ├── CMakeLists.txt │ │ ├── CommRequest.cc │ │ ├── CommRequest.h │ │ ├── CommScheduler.cc │ │ ├── CommScheduler.h │ │ ├── Communicator.cc │ │ ├── Communicator.h │ │ ├── ExecRequest.h │ │ ├── Executor.cc │ │ ├── Executor.h │ │ ├── IORequest.h │ │ ├── IOService_linux.cc │ │ ├── IOService_linux.h │ │ ├── IOService_thread.cc │ │ ├── IOService_thread.h │ │ ├── SleepRequest.h │ │ ├── SubTask.cc │ │ ├── SubTask.h │ │ ├── list.h │ │ ├── mpoller.c │ │ ├── mpoller.h │ │ ├── msgqueue.c │ │ ├── msgqueue.h │ │ ├── poller.c │ │ ├── poller.h │ │ ├── rbtree.c │ │ ├── rbtree.h │ │ ├── thrdpool.c │ │ ├── thrdpool.h │ │ └── xmake.lua │ ├── manager/ │ │ ├── CMakeLists.txt │ │ ├── DnsCache.cc │ │ ├── DnsCache.h │ │ ├── EndpointParams.h │ │ ├── RouteManager.cc │ │ ├── RouteManager.h │ │ ├── UpstreamManager.cc │ │ ├── UpstreamManager.h │ │ ├── WFFacilities.h │ │ ├── WFFacilities.inl │ │ ├── WFFuture.h │ │ ├── WFGlobal.cc │ │ ├── WFGlobal.h │ │ └── xmake.lua │ ├── nameservice/ │ │ ├── CMakeLists.txt │ │ ├── UpstreamPolicies.cc │ │ ├── UpstreamPolicies.h │ │ ├── WFDnsResolver.cc │ │ ├── WFDnsResolver.h │ │ ├── WFNameService.cc │ │ ├── WFNameService.h │ │ ├── WFServiceGovernance.cc │ │ ├── WFServiceGovernance.h │ │ └── xmake.lua │ ├── protocol/ │ │ ├── CMakeLists.txt │ │ ├── ConsulDataTypes.h │ │ ├── DnsMessage.cc │ │ ├── DnsMessage.h │ │ ├── DnsUtil.cc │ │ ├── DnsUtil.h │ │ ├── HttpMessage.cc │ │ ├── HttpMessage.h │ │ ├── HttpUtil.cc │ │ ├── HttpUtil.h │ │ ├── KafkaDataTypes.cc │ │ ├── KafkaDataTypes.h │ │ ├── KafkaMessage.cc │ │ ├── KafkaMessage.h │ │ ├── KafkaResult.cc │ │ ├── KafkaResult.h │ │ ├── MySQLMessage.cc │ │ ├── MySQLMessage.h │ │ ├── MySQLMessage.inl │ │ ├── MySQLResult.cc │ │ ├── MySQLResult.h │ │ ├── MySQLResult.inl │ │ ├── MySQLUtil.cc │ │ ├── MySQLUtil.h │ │ ├── PackageWrapper.cc │ │ ├── PackageWrapper.h │ │ ├── ProtocolMessage.h │ │ ├── RedisMessage.cc │ │ ├── RedisMessage.h │ │ ├── SSLWrapper.cc │ │ ├── SSLWrapper.h │ │ ├── TLVMessage.cc │ │ ├── TLVMessage.h │ │ ├── dns_parser.c │ │ ├── dns_parser.h │ │ ├── dns_types.h │ │ ├── http_parser.c │ │ ├── http_parser.h │ │ ├── kafka_parser.c │ │ ├── kafka_parser.h │ │ ├── mysql_byteorder.c │ │ ├── mysql_byteorder.h │ │ ├── mysql_parser.c │ │ ├── mysql_parser.h │ │ ├── mysql_stream.c │ │ ├── mysql_stream.h │ │ ├── mysql_types.h │ │ ├── redis_parser.c │ │ ├── redis_parser.h │ │ └── xmake.lua │ ├── server/ │ │ ├── CMakeLists.txt │ │ ├── WFDnsServer.h │ │ ├── WFHttpServer.h │ │ ├── WFMySQLServer.cc │ │ ├── WFMySQLServer.h │ │ ├── WFRedisServer.h │ │ ├── WFServer.cc │ │ ├── WFServer.h │ │ └── xmake.lua │ ├── util/ │ │ ├── CMakeLists.txt │ │ ├── EncodeStream.cc │ │ ├── EncodeStream.h │ │ ├── LRUCache.h │ │ ├── StringUtil.cc │ │ ├── StringUtil.h │ │ ├── URIParser.cc │ │ ├── URIParser.h │ │ ├── crc32c.c │ │ ├── crc32c.h │ │ ├── json_parser.c │ │ ├── json_parser.h │ │ └── xmake.lua │ └── xmake.lua ├── test/ │ ├── CMakeLists.txt │ ├── GNUmakefile │ ├── algo_unittest.cc │ ├── dns_unittest.cc │ ├── facilities_unittest.cc │ ├── graph_unittest.cc │ ├── http_unittest.cc │ ├── memory_unittest.cc │ ├── mysql_unittest.cc │ ├── redis_unittest.cc │ ├── resource_unittest.cc │ ├── task_unittest.cc │ ├── upstream_unittest.cc │ ├── uriparser_unittest.cc │ └── xmake.lua ├── tutorial/ │ ├── CMakeLists.txt │ ├── GNUmakefile │ ├── tutorial-00-helloworld.cc │ ├── tutorial-01-wget.cc │ ├── tutorial-02-redis_cli.cc │ ├── tutorial-03-wget_to_redis.cc │ ├── tutorial-04-http_echo_server.cc │ ├── tutorial-05-http_proxy.cc │ ├── tutorial-06-parallel_wget.cc │ ├── tutorial-07-sort_task.cc │ ├── tutorial-08-matrix_multiply.cc │ ├── tutorial-09-http_file_server.cc │ ├── tutorial-10-user_defined_protocol/ │ │ ├── client-uds.cc │ │ ├── client.cc │ │ ├── message.cc │ │ ├── message.h │ │ ├── server-uds.cc │ │ ├── server.cc │ │ └── xmake.lua │ ├── tutorial-11-graph_task.cc │ ├── tutorial-12-mysql_cli.cc │ ├── tutorial-13-kafka_cli.cc │ ├── tutorial-14-consul_cli.cc │ ├── tutorial-15-name_service.cc │ ├── tutorial-16-graceful_restart/ │ │ ├── bootstrap.c │ │ ├── server.cc │ │ └── xmake.lua │ ├── tutorial-17-dns_cli.cc │ ├── tutorial-18-redis_subscriber.cc │ ├── tutorial-19-dns_server.cc │ └── xmake.lua ├── workflow-config.cmake.in └── xmake.lua