{"id":28085654,"url":"https://github.com/chronolaw/ngx_cpp_dev","last_synced_at":"2025-05-13T10:40:28.852Z","repository":{"id":44420236,"uuid":"39229212","full_name":"chronolaw/ngx_cpp_dev","owner":"chronolaw","description":"Nginx cpp development kit","archived":false,"fork":false,"pushed_at":"2019-12-16T08:11:21.000Z","size":210,"stargazers_count":158,"open_issues_count":0,"forks_count":73,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-02T18:53:00.356Z","etag":null,"topics":["nginx","nginx-stream","ngx-cpp","wrapper"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chronolaw.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}},"created_at":"2015-07-17T01:42:31.000Z","updated_at":"2025-02-23T13:02:16.000Z","dependencies_parsed_at":"2022-09-16T21:10:39.333Z","dependency_job_id":null,"html_url":"https://github.com/chronolaw/ngx_cpp_dev","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronolaw%2Fngx_cpp_dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronolaw%2Fngx_cpp_dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronolaw%2Fngx_cpp_dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chronolaw%2Fngx_cpp_dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chronolaw","download_url":"https://codeload.github.com/chronolaw/ngx_cpp_dev/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253924688,"owners_count":21985159,"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":["nginx","nginx-stream","ngx-cpp","wrapper"],"created_at":"2025-05-13T10:40:28.240Z","updated_at":"2025-05-13T10:40:28.838Z","avatar_url":"https://github.com/chronolaw.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"Name\n====\nngx_cpp_dev\n\nNginx cpp development kit, with the power of C++11 and Boost Library.\n\n[![Build Status](https://travis-ci.org/chronolaw/ngx_cpp_dev.svg?branch=master)](https://travis-ci.org/chronolaw/ngx_cpp_dev)\n\nTable of Contents\n=================\n\n* [Name](#name)\n* [Status](#status)\n* [See Also](#see-also)\n* [Requirements](#Requirements)\n* [Usage](#Usage)\n* [Examples](Examples)\n* [C++ APIs](#C++-APIs)\n* [TODO](#TODO)\n\nStatus\n====\nExperimental but works well.\n\nNow support *Nginx 1.13.10 and later*.\n\nSee Also\n====\n* [annotated_nginx](https://github.com/chronolaw/annotated_nginx) - 注释nginx，学习研究源码\n* [ngx_ansic_dev](https://github.com/chronolaw/ngx_ansic_dev) - Nginc ANSI C Development\n* [openresty_dev](https://github.com/chronolaw/openresty_dev) - OpenResty/Lua Programming\n* [ngx_google_perftools_profiler](https://github.com/chronolaw/ngx_google_perftools_profiler_module) - A better tools for nginx with google_perftools\n\nRequirements\n============\n* Linux or other UNIX like\n* C++11(gcc 4.6 or later)\n* Boost(1.57 or later)\n* Nginx 1.13.10 or later\n\nPlease see directiory \"setup\".\n\nUsage\n=====\nAt first, you must patch `nginx/auto/make` to enable g++ compiler and C++11.\n\nPlease see directory *\"patch/auto\"*.\n\nFor example:\n~~~~\npatch -b make make.patch\n~~~~\n\n\nThen configure nginx with:\n~~~~\n./configure --add-module=path/to/ngxpp\t\\\t            # ngx cpp module\n\t\t\t--add-module=xxxx\t\t\t                # other modules\nmake\n~~~~\n\nngx_cpp_module is a pure header library, you should use ngx_cpp_module like this:\n~~~~\n#include \"NgxAll.hpp\"\t// include all C++ tools for http modules\n~~~~\nOr\n~~~~\n#include \"NgxStreamAll.hpp\"\t// include all C++ tools for stream modules\n~~~~\n\n\nExamples\n========\nPlease see directory *http*, including echo/filter/variables and so on.\n\nC++ APIs\n========\n\ncommon tools\n------\n\nClass Name      | Description\n----------------|------------------------\nNgxUnsetValue   | generic unset value -1.\nNgxValue        | wrapper for nginx int, include init/merge/unset.\nNgxException    | wrapper for nginx error code.\nNgxPool         | wrapper for nginx memory pool.\nNgxAlloctor     | adapter to C++ allocator.\nNgxString       | wrapper for nginx `ngx_str_t`.\nNgxClock        | wrapper for nginx time functions.\nNgxDatetime     | wrapper for nginx date functions.\nNgxLog          | wrapper for nginx error log.\n\ndata structure\n------\n\nClass Name      | Description\n----------------|------------------------\nNgxArray        | wrapper for nginx `ngx_array_t`.\nNgxList         | wrapper for nginx `ngx_list_t.`\nNgxQueue        | wrapper for nginx `ngx_queue_t`.\nNgxBuf          | deprecated, wrapper for nginx `ngx_buf_t`.\nNgxChain        | deprecated, wrapper for nginx `ngx_chain_t`.\nNgxRbtree       | wrapper for nginx `ngx_rbtree_t`.\n\nmodules\n------\n\nClass Name      | Description\n----------------|------------------------\nNgxModuleConfig | easy to access nginx module confing info.\nNgxModule       | get module's config and ctx data.\nNgxCommand      | deprecated, DO NOT USE IT.\nNgxTake         | deprecated\nNgxModuleCtx    | easy to access nginx module's ctx data.\nNgxHttpCoreModule|wrapper for ngx_http_core_module\nNgxFilter       | wrapper for nginx filter mechanism.\n\nhttp process\n------\n\nClass Name      | Description\n----------------|------------------------\nNgxHeaders      |\nNgxRequest      |\nNgxResponse     |\nNgxUpstreamHelper|\nNgxLoadBalance  |\nNgxSubRequest   |\n\nothers\n------\nClass Name      | Description\n----------------|------------------------\nNgxVariables    |\nNgxVarManager   |\nNgxDigest       |\nNgxTimer        |\n\nTODO\n====\n* more test suites\n* nginx datagram\n* ...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchronolaw%2Fngx_cpp_dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchronolaw%2Fngx_cpp_dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchronolaw%2Fngx_cpp_dev/lists"}