A Nginx module which tries to implement proxy wasm ABI in Nginx.

Overview

Status

This library is under construction.

Description

A Nginx module which tries to implement proxy wasm ABI in Nginx.

Install dependencies

  • Download the wasmtime C API package, see https://docs.wasmtime.dev/c-api/. Then rename it to wasmtime-c-api/. Remember to add the wasmtime-c-api/lib to the library search path when you build Nginx, for instance,
export wasm_prefix=/path/to/wasm-nginx-module/wasmtime-c-api
./configure ... \
    --with-ld-opt="-Wl,-rpath,${wasm_prefix}/lib" \

Methods

load

syntax: plugin, err = proxy_wasm.load(path)

Load a .wasm file from the filesystem and return a WASM plugin.

local plugin, err = proxy_wasm.load("t/testdata/plugin_lifecycle/main.go.wasm")

on_configure

syntax: plugin_ctx, err = proxy_wasm.on_configure(plugin, conf)

Create a plugin ctx with the given plugin and conf.

local plugin, err = proxy_wasm.load("t/testdata/plugin_lifecycle/main.go.wasm")
if not plugin then
    ngx.log(ngx.ERR, "failed to load wasm ", err)
    return
end
local ctx, err = wasm.on_configure(plugin, '{"body":512}')
if not ctx then
    ngx.log(ngx.ERR, "failed to create plugin ctx ", err)
    return
end

proxy-wasm ABI

Implemented proxy-wasm ABI can be found in proxy_wasm_abi.

Comments
  • bug: segmentation fault due to invalid cast

    bug: segmentation fault due to invalid cast

    Description

    functions sharing str_buf as buffer may cause ngx_http_wasm_req_get_headers segmentation fault because of the invalid cast between ngx_str_t.len (type size_t) and ngx_http_lua_ffi_str_t.len (type int).

    Here, get_req_headers is resolved to ngx_http_lua_ffi_req_get_headers, but their parameter types proxy_wasm_table_elt_t and ngx_http_lua_ffi_table_elt_t have different structure.

    https://github.com/api7/wasm-nginx-module/blob/e6a80099d7a08f829c50bf3e2bb7cc539f03d244/src/http/ngx_http_wasm_api.c#L136

    On 64bit OS, it will read len (type size_t) extra 4 dirty bytes which may be previously written by another function sharing str_buf.

    image image

    Finally, ngx_memcpy with the wrong len makes the segmentation fault.

    https://github.com/api7/wasm-nginx-module/blob/e6a80099d7a08f829c50bf3e2bb7cc539f03d244/src/http/ngx_http_wasm_api.c#L978

    Data Structure Detail Comparison

    https://github.com/api7/wasm-nginx-module/blob/e6a80099d7a08f829c50bf3e2bb7cc539f03d244/src/http/ngx_http_wasm_api.c#L93-L94

    lua-nginx-module - ngx_http_lua_ffi_req_get_headers

    https://github.com/openresty/lua-nginx-module/blob/653d6a36f46b077cb902d7ba40824c299cf9bbf4/src/ngx_http_lua_headers.c#L810-L812

    lua-nginx-module cast len from original type size_t to int. https://github.com/openresty/lua-nginx-module/blob/653d6a36f46b077cb902d7ba40824c299cf9bbf4/src/ngx_http_lua_headers.c#L845


    https://github.com/api7/wasm-nginx-module/blob/a418cc3861e218b6425b6eccec411a6394eedd2a/src/proxy_wasm/proxy_wasm_types.h#L24-L27

    lua-nginx-module - ngx_http_lua_ffi_table_elt_t

    https://github.com/openresty/lua-nginx-module/blob/9b7bde2e7986d2150606e33e303c6bd1c40271a6/src/ngx_http_lua_util.h#L106-L109


    nginx - ngx_str_t

    https://github.com/nginx/nginx/blob/a64190933e06758d50eea926e6a55974645096fd/src/core/ngx_string.h#L16-L19

    lua-nginx-module - ngx_http_lua_ffi_str_t

    https://github.com/openresty/lua-nginx-module/blob/4bbb57aa4a6995bd3efaf35c01e826de6f3cdf3a/src/api/ngx_http_lua_api.h#L37-L41

    opened by 2EXP 5
  • chore(deps): bump actions/checkout from 3.1.0 to 3.2.0

    chore(deps): bump actions/checkout from 3.1.0 to 3.2.0

    Bumps actions/checkout from 3.1.0 to 3.2.0.

    Release notes

    Sourced from actions/checkout's releases.

    v3.2.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3...v3.2.0

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump actions/setup-node from 3.5.0 to 3.5.1

    chore(deps): bump actions/setup-node from 3.5.0 to 3.5.1

    Bumps actions/setup-node from 3.5.0 to 3.5.1.

    Release notes

    Sourced from actions/setup-node's releases.

    Update @​actions/core and Print Node, Npm, Yarn versions

    In scope of this release we updated actions/core to 1.10.0. Moreover, we added logic to print Nodejs, Npm, Yarn versions after installation.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump actions/checkout from 3.0.2 to 3.1.0

    chore(deps): bump actions/checkout from 3.0.2 to 3.1.0

    Bumps actions/checkout from 3.0.2 to 3.1.0.

    Release notes

    Sourced from actions/checkout's releases.

    v3.1.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/checkout/compare/v3.0.2...v3.1.0

    Changelog

    Sourced from actions/checkout's changelog.

    v3.1.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump actions/setup-node from 3.4.1 to 3.5.0

    chore(deps): bump actions/setup-node from 3.4.1 to 3.5.0

    Bumps actions/setup-node from 3.4.1 to 3.5.0.

    Release notes

    Sourced from actions/setup-node's releases.

    Add support for engines.node and Volta

    In scope of this release we add support for engines.node. The action will be able to grab the version form package.json#engines.node. actions/setup-node#485. Moreover, we added support for Volta

    Besides, we updated @​actions/core to 1.9.1 and @​actions/cache to 3.0.4

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • fix: libwasmtime.so not available under centos arm

    fix: libwasmtime.so not available under centos arm

    openresty: relocation error: /usr/local/openresty/wasmtime-c-api/lib/[libwasmtime.so](http://libwasmtime.so/): 
    symbol __cxa_thread_atexit_impl, version GLIBC_2.18 not defined in file libc.so.6 with link time reference
    
    opened by soulbird 1
  • chore(deps): bump actions/setup-node from 3.4.0 to 3.4.1

    chore(deps): bump actions/setup-node from 3.4.0 to 3.4.1

    Bumps actions/setup-node from 3.4.0 to 3.4.1.

    Release notes

    Sourced from actions/setup-node's releases.

    Fix pnpm output and node-version output issues

    In scope of this release we fixed bugs related to the pnpm 7.5.1 output issue from pnpm store path actions/setup-node#545. Moreover we fixed the issue with falling on node-version output actions/setup-node#540.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump apache/skywalking-eyes from 0.3.0 to 0.4.0

    chore(deps): bump apache/skywalking-eyes from 0.3.0 to 0.4.0

    Bumps apache/skywalking-eyes from 0.3.0 to 0.4.0.

    Changelog

    Sourced from apache/skywalking-eyes's changelog.

    0.4.0

    • Reorganize GHA by header and dependency. (#123)
    • Add rust cargo support for dep command. (#121)
    • Support license expression in dep check. (#120)
    • Prune npm packages before listing all dependencies (#119)
    • Add support for multiple licenses in the header config section (#118)
    • Add excludes to license resolve config (#117)
    • maven: set group:artifact as dependency name and extend functions in summary template (#116)
    • Stablize summary context to perform consistant output (#115)
    • Add custom license urls for identification (#114)
    • Lazy initialize GitHub client for comment (#111)
    • Make license identifying threshold configurable (#110)
    • Use Google's licensecheck to identify licenses (#107)
    • dep: short circuit if user declare dep license (#108)
    Commits
    • 438e4ea Draft 0.4.0 (#124)
    • 501a28d Organize GHA by header and dependency (#123)
    • 0cb30eb Add rust cargo support for dep command. (#121)
    • 095c4c6 Support license expression in dep check. (#120)
    • f461a46 Prune packages before listing all dependencies (#119)
    • c343ca4 Add support for multiple licenses in the header config section (#118)
    • 47febf5 Add excludes to license resolve config (#117)
    • 2c6d8a0 maven: set group:artifact as dependency name and extend functions in summary ...
    • 35c6a02 Stablize summary context to perform consistant output (#115)
    • 9b99ab9 Add custom license urls for identification (#114)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump actions/setup-node from 3.3.0 to 3.4.0

    chore(deps): bump actions/setup-node from 3.3.0 to 3.4.0

    Bumps actions/setup-node from 3.3.0 to 3.4.0.

    Release notes

    Sourced from actions/setup-node's releases.

    Add support for asdf format and update actions/cache version to 3.0.0

    In scope of this release we updated actions/cache package as the new version contains fixes for caching error handling. Moreover, we added support for asdf format as Node.js version file actions/setup-node#373. Besides, we introduced new output node-version and added npm-shrinkwrap.json to dependency file patterns: actions/setup-node#439

    Commits
    • 5b949b5 Merge pull request #373 from ganta/add-support-for-asdf-format-as-node-versio...
    • 09ba51f README.md: Encourage testing on current Node.js (#533)
    • b3ca1ac Support npm-shrinkwrap.json out-of-the-box (#439)
    • 78faa55 Merge pull request #534 from panva/set-version-output
    • 0f15a51 Merge pull request #528 from jamesottaway/patch-1
    • 460f886 fixup mocked version output
    • d8b0944 add mock for getExecOutput in installer.test.ts
    • 0ad0620 Update advanced-usage.md
    • adeb189 apply review feedback
    • 0d74188 run build&format
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump actions/setup-go from 2 to 3

    chore(deps): bump actions/setup-go from 2 to 3

    Bumps actions/setup-go from 2 to 3.

    Release notes

    Sourced from actions/setup-go's releases.

    v3.0.0

    What's Changed

    Breaking Changes

    With the update to Node 16, all scripts will now be run with Node 16 rather than Node 12.

    This new major release removes the stable input, so there is no need to specify additional input to use pre-release versions. This release also corrects the pre-release versions syntax to satisfy the SemVer notation (1.18.0-beta1 -> 1.18.0-beta.1, 1.18.0-rc1 -> 1.18.0-rc.1).

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-go@v3
        with:
          go-version: '1.18.0-rc.1' 
      - run: go version
    

    Add check-latest input

    In scope of this release we add the check-latest input. If check-latest is set to true, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, a Go version will then be downloaded from go-versions repository. By default check-latest is set to false. Example of usage:

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-go@v2
        with:
          go-version: '1.16'
          check-latest: true
      - run: go version
    

    Moreover, we updated @actions/core from 1.2.6 to 1.6.0

    v2.1.5

    In scope of this release we updated matchers.json to improve the problem matcher pattern. For more information please refer to this pull request

    v2.1.4

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/setup-go/compare/v2.1.3...v2.1.4

    v2.1.3

    • Updated communication with runner to use environment files rather then workflow commands

    v2.1.2

    This release includes vendored licenses for this action's npm dependencies.

    ... (truncated)

    Commits
    • b22fbbc Implementation of caching functionality for setup-go action (#228)
    • fcdc436 Update @​zeit/ncc to @​vercel/ncc (#229)
    • 265edc1 Add go-version-file option (#62)
    • 193b404 Successfully set up (#231)
    • 56a61c9 Create ADR for integrating cache functionality to setup-go action (#217)
    • b46db95 Merge pull request #222 from vsafonkin/v-vsafonkin/add-readme-note
    • 3332358 Add note about go building
    • 46eabca Merge pull request #221 from vsafonkin/v-vsafonkin/fix-gopath-condition
    • 0794822 Rename CONDUCT.md and change email inside (#218)
    • ad70bef Fix condition for old go versions
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): bump actions/setup-node from 2.5.0 to 3.3.0

    chore(deps): bump actions/setup-node from 2.5.0 to 3.3.0

    Bumps actions/setup-node from 2.5.0 to 3.3.0.

    Release notes

    Sourced from actions/setup-node's releases.

    Add support for lts/-n aliases

    In scope of this release we added support for lts/-n aliases, improve logic for current, latest and node aliases to handle them from toolcache, update ncc package.

    Support of lts/-n aliases

    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-node@v3
      with:
        node-version: lts/-1
    - run: npm ci
    - run: npm test
    

    Minor improvements

    Add current, node, latest aliases

    In scope of this release we added new aliases to install the latest Node.js version. actions/setup-node#483

    steps:
    - uses: actions/checkout@v3
    - uses: actions/setup-node@v3
      with:
        node-version: current
    - run: npm ci
    - run: npm test
    

    Update actions/cache version to 2.0.2

    In scope of this release we updated actions/cache package as the new version contains fixes related to GHES 3.5 (actions/setup-node#460)

    Add caching support on GHES 3.5

    In scope of this release we added support for caching from GHES 3.5 and fixed download issue for files > 2GB during restore. Besides, we updated actions/cache dependency to 2.0.0 version.

    v3.0.0

    In scope of this release we changed version of the runtime Node.js for the setup-node action and updated package-lock.json file to v2.

    Breaking Changes

    Fix logic of error handling for npm warning and uncaught exception

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Releases(0.6.4)
Owner
API7
API7 is an open source software startup company delivering the most performance, security and scalable platform for APIs and microservices.
API7
A forward proxy module for CONNECT request handling

name This module provides support for the CONNECT method request. This method is mainly used to tunnel SSL requests through proxy servers. Table of Co

Xiaochen Wang 1.3k Jan 4, 2023
We use Clash as the backend proxy, which supports Shadowsocks(R), V2Ray, and Trojan protocols.

We use Clash as the backend proxy, which supports Shadowsocks(R), V2Ray, and Trojan protocols.

Dr. Incognito 1.4k Dec 31, 2022
docker-nginx-with-image-filter

docker-nginx-with-image-filter 因为官方镜像默认没有启用该模块,故自己做了一个Dockerfile,并编译,docker镜像地址: docker pull smally84/nginx-with-image-filter:1.20.1 附上Dockerfile ###

null 2 Dec 11, 2021
A lightweight Universal Windows proxy app based on https://github.com/eycorsican/leaf

Maple A lightweight Universal Windows proxy app based on https://github.com/eycorsican/leaf Features Configuration management Outbound network adapter

YtFlow 784 Jan 6, 2023
Pipy is a tiny, high performance, highly stable, programmable proxy written in C++

Pipy is a tiny, high performance, highly stable, programmable proxy. Written in C++, built on top of Asio asynchronous I/O library, Pipy is extremely lightweight and fast, making it one of the best choices for service mesh sidecars.

null 538 Dec 23, 2022
Phorklift is an HTTP server and proxy daemon, with clear, powerful and dynamic configuration.

Phorklift is an HTTP server and proxy daemon, with clear, powerful and dynamic configuration.

null 43 Mar 1, 2022
zrp is a nat-passthrough reverse proxy written in modern c++.

zrp is a nat-passthrough reverse proxy written in modern c++. A major use case is to expose a local server via a remote server with public IP.

Coleman 12 Oct 27, 2022
A proxy service of incremental log of OceanBase

OceanBase Migration Serivce LogProxy OceanBase增量日志代理服务,是 OMS 的一部分。基于 liboblog, 以服务的形式,提供实时增量链路接入和管理能力,方便应用接入OceanBase增量日志;能够解决网络隔离的情况下,订阅增量日志的需求;并提供多种

OceanBase 26 Nov 25, 2022
A simple SIP server (proxy) for handling VoIP calls based on SIP using C++

Sip Server A simple sip server for handling VoIP calls based on sip protocol. Features Registration Of Users The server supports registration process.

null 8 Nov 3, 2022
reverse proxy with web server and preview page

Reverse Proxy Dependencies Go Make Suport Termux (android/afsd kernel) linux (kernel) Install: Termux: 1 step: Install Go-lang, Git and Make pkg insta

AlbâniaSecurity-RT 9 Dec 8, 2022
A flexible tool for redirecting a given program's TCP traffic to SOCKS5 or HTTP proxy.

graftcp English | 简体中文 Introduction graftcp can redirect the TCP connection made by the given program [application, script, shell, etc.] to SOCKS5 or

mingang.he 1.3k Dec 26, 2022
WARFOX is a software-based HTTPS beaconing Windows implant that uses a multi-layered proxy network for C2 communications.

An HTTPS beaconing Windows implant and multi-layered proxy C2 network designed for covert APT emulation focused offensive operations

null 85 Nov 25, 2022
Proxy that can be used in GTPS to crash and others. All commands are already in

Credit to ama6nen Real Repo This proxy can be used and modified by everyone. This proxy already has several command exploits for gtps Features: /proxy

Sersinals 1 Nov 12, 2022
An HTTPS beaconing Windows implant and multi-layered proxy C2 network designed for covert APT emulation focused offensive operations

WARFOX is a software-based HTTPS beaconing Windows implant that uses a multi-layered proxy network for C2 communications. This kit was designed to emulate covert APT offensive operations. This kit includes WARFOX (Windows implant), HIGHTOWER (Listening Post), and other tools to build configs and set up a proxy network.

null 85 Nov 25, 2022
LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.

LibVNCServer: A library for easy implementation of a VNC server. Copyright (C) 2001-2003 Johannes E. Schindelin If you already used LibVNCServer, you

null 888 Dec 30, 2022
single header C(99) library to implement client-server network code for games

single header C(99) library to implement client-server network code for games

Nathan 227 Jan 5, 2023
Implement Ipv4 ServiceId Table() based on INET framework on OMNeT++.

omnet++/inet_Service-Id-Table Implement Ipv4 ServiceId Table(<ipaddr,sid>) based on INET framework on OMNeT++. Version: OMNeT++ 5.6.2(https://github.c

null 1 May 28, 2022
SimpleSockets is a lightweight set of classes that allow developers to implement IP based network programs.

------------------------------------------------------------------------------------------ * History -------------------------------------------------

DFHack 143 Dec 8, 2022
libsinsp, libscap, the kernel module driver, and the eBPF driver sources

falcosecurity/libs As per the OSS Libraries Contribution Plan, this repository has been chosen to be the new home for libsinsp, libscap, the kernel mo

Falco 133 Dec 29, 2022