├── .cargo └── config.toml ├── .github └── workflows │ └── container.yml ├── .gitignore ├── .gitmodules ├── .licenserc.yaml ├── BuildOnWindows.md ├── Cargo.lock ├── Cargo.toml ├── Dockerfile-client ├── Dockerfile-server ├── LICENSE ├── Makefile ├── README.en.md ├── README.md ├── bin ├── Cargo.toml ├── build.rs ├── src │ ├── cs.rs │ ├── cs_bindings.rs │ ├── lib.rs │ ├── main.rs │ ├── manager.rs │ └── peer │ │ ├── conn.rs │ │ ├── connect.rs │ │ └── mod.rs └── tests │ ├── answer.rs │ ├── common │ ├── compat.rs │ ├── log.rs │ └── mod.rs │ └── offer.rs ├── build.ps1 ├── entrypoint-server.sh └── libcs ├── Dockerfile ├── LICENSE ├── LICENSE.tpl ├── LICENSE.txt ├── Makefile ├── NOTICE ├── README.md ├── README_CN.md ├── VERSION ├── bufio ├── bufio.go ├── bufio_test.go ├── example_test.go ├── export_test.go ├── reader.go ├── scan.go └── scan_test.go ├── client ├── api │ ├── conn.go │ ├── listener.go │ └── server.go ├── client.go ├── client_test.go ├── config.go ├── conn.go ├── debug.go ├── idle.go ├── peer.go ├── peerproc.go ├── release.go ├── signal.go ├── std │ ├── chunked.go │ └── pipe.go ├── task.go ├── task_test.go ├── tcpforward.go ├── web │ ├── api │ │ ├── api.go │ │ └── api_test.go │ ├── embed.go │ ├── service │ │ ├── service.go │ │ └── service_test.go │ ├── web.go │ └── web_test.go └── webrtc │ ├── datachannel.cpp │ ├── datachannel.go │ ├── datachannel.h │ ├── datachannel.hpp │ ├── icecandidate.go │ ├── logging.cpp │ ├── logging.go │ ├── logging.h │ ├── peerconnection.cpp │ ├── peerconnection.go │ ├── peerconnection.h │ ├── sessiondescription.go │ ├── threadpool.cpp │ ├── threadpool.go │ └── threadpool.h ├── config ├── config.go ├── config_test.go ├── duration.go ├── duration_test.go ├── position.go ├── position_test.go ├── positionslice.go ├── positionslice_test.go ├── slice.go ├── slice_test.go └── testdata │ ├── config.yaml │ └── pointer.yaml ├── conn ├── conn.go ├── msquic │ ├── conneciton.go │ ├── connection.cpp │ ├── connection.h │ ├── connection.hpp │ ├── listener.cpp │ ├── listener.go │ ├── listener.h │ ├── msquicConn.go │ ├── quic.cpp │ ├── quic.go │ ├── quic.h │ ├── quic.hpp │ ├── stream.cpp │ ├── stream.go │ ├── stream.h │ └── stream.hpp ├── quicConn.go └── quicXgboost.go ├── dep └── patch │ ├── openssl.patch │ └── redefine-sym.mac ├── example ├── config │ ├── client.yaml │ └── server.yaml └── dev │ └── web │ └── p2p.js ├── go.mod ├── go.sum ├── lib ├── client │ └── client.go ├── export │ └── lib.go └── server │ └── server.go ├── licenses ├── license-github.com-BurntSushi-toml.txt ├── license-github.com-CloudyKit-fastprinter.txt ├── license-github.com-CloudyKit-jet-v3.txt ├── license-github.com-Joker-hpp.txt ├── license-github.com-Shopify-goreferrer.txt ├── license-github.com-ajg-form.txt ├── license-github.com-archdx-zerolog-sentry.txt ├── license-github.com-armon-consul-api.txt ├── license-github.com-aymerick-raymond.txt ├── license-github.com-buger-jsonparser.txt ├── license-github.com-codegangsta-inject.txt ├── license-github.com-coreos-etcd.txt ├── license-github.com-coreos-go-etcd.txt ├── license-github.com-coreos-go-semver.txt ├── license-github.com-coreos-go-systemd-v22.txt ├── license-github.com-cpuguy83-go-md2man.txt ├── license-github.com-davecgh-go-spew.txt ├── license-github.com-dgraph-io-badger.txt ├── license-github.com-dgryski-go-farm.txt ├── license-github.com-dustin-go-humanize.txt ├── license-github.com-eknkc-amber.txt ├── license-github.com-etcd-io-bbolt.txt ├── license-github.com-fatih-structs.txt ├── license-github.com-fsnotify-fsnotify.txt ├── license-github.com-gavv-httpexpect.txt ├── license-github.com-getsentry-sentry-go.txt ├── license-github.com-gin-contrib-sse.txt ├── license-github.com-gin-gonic-gin.txt ├── license-github.com-go-check-check.txt ├── license-github.com-go-errors-errors.txt ├── license-github.com-go-martini-martini.txt ├── license-github.com-gobwas-httphead.txt ├── license-github.com-gobwas-ws.txt ├── license-github.com-godbus-dbus-v5.txt ├── license-github.com-golang-jwt-jwt.txt ├── license-github.com-golang-protobuf.txt ├── license-github.com-gomodule-redigo.txt ├── license-github.com-google-go-cmp.txt ├── license-github.com-google-go-querystring.txt ├── license-github.com-google-gofuzz.txt ├── license-github.com-gopherjs-gopherjs.txt ├── license-github.com-gorilla-websocket.txt ├── license-github.com-hashicorp-go-version.txt ├── license-github.com-hashicorp-hcl.txt ├── license-github.com-hpcloud-tail.txt ├── license-github.com-imkira-go-interpol.txt ├── license-github.com-inconshreveable-mousetrap.txt ├── license-github.com-iris-contrib-blackfriday.txt ├── license-github.com-iris-contrib-go.uuid.txt ├── license-github.com-iris-contrib-jade.txt ├── license-github.com-iris-contrib-pongo2.txt ├── license-github.com-jonboulle-clockwork.txt ├── license-github.com-json-iterator-go.txt ├── license-github.com-jtolds-gls.txt ├── license-github.com-k0kubun-colorstring.txt ├── license-github.com-kataras-golog.txt ├── license-github.com-kataras-iris-v12.txt ├── license-github.com-kataras-neffos.txt ├── license-github.com-kataras-pio.txt ├── license-github.com-kataras-sitemap.txt ├── license-github.com-klauspost-compress.txt ├── license-github.com-klauspost-cpuid.txt ├── license-github.com-kr-pretty.txt ├── license-github.com-kr-pty.txt ├── license-github.com-kr-text.txt ├── license-github.com-labstack-echo-v4.txt ├── license-github.com-labstack-gommon.txt ├── license-github.com-lestrrat-go-envload.txt ├── license-github.com-lestrrat-go-strftime.txt ├── license-github.com-magiconair-properties.txt ├── license-github.com-mattn-go-colorable.txt ├── license-github.com-mattn-go-isatty.txt ├── license-github.com-mattn-go-pointer.txt ├── license-github.com-mediocregopher-radix-v3.txt ├── license-github.com-microcosm-cc-bluemonday.txt ├── license-github.com-mitchellh-go-homedir.txt ├── license-github.com-mitchellh-mapstructure.txt ├── license-github.com-modern-go-concurrent.txt ├── license-github.com-modern-go-reflect2.txt ├── license-github.com-moul-http2curl.txt ├── license-github.com-nats-io-jwt.txt ├── license-github.com-nats-io-nats.go.txt ├── license-github.com-nats-io-nkeys.txt ├── license-github.com-nats-io-nuid.txt ├── license-github.com-onsi-ginkgo.txt ├── license-github.com-onsi-gomega.txt ├── license-github.com-pelletier-go-toml.txt ├── license-github.com-pingcap-errors.txt ├── license-github.com-pion-logging.txt ├── license-github.com-pion-randutil.txt ├── license-github.com-pion-stun.txt ├── license-github.com-pion-transport.txt ├── license-github.com-pion-turn-v2.txt ├── license-github.com-pkg-errors.txt ├── license-github.com-pmezard-go-difflib.txt ├── license-github.com-rs-xid.txt ├── license-github.com-rs-zerolog.txt ├── license-github.com-russross-blackfriday.txt ├── license-github.com-ryanuber-columnize.txt ├── license-github.com-schollz-closestmatch.txt ├── license-github.com-sergi-go-diff.txt ├── license-github.com-shurcooL-sanitized-anchor-name.txt ├── license-github.com-smartystreets-assertions.txt ├── license-github.com-smartystreets-goconvey.txt ├── license-github.com-spf13-afero.txt ├── license-github.com-spf13-cast.txt ├── license-github.com-spf13-cobra.txt ├── license-github.com-spf13-jwalterweatherman.txt ├── license-github.com-spf13-pflag.txt ├── license-github.com-spf13-viper.txt ├── license-github.com-stretchr-objx.txt ├── license-github.com-stretchr-testify.txt ├── license-github.com-ugorji-go-codec.txt ├── license-github.com-ugorji-go.txt ├── license-github.com-urfave-negroni.txt ├── license-github.com-valyala-bytebufferpool.txt ├── license-github.com-valyala-fasthttp.txt ├── license-github.com-valyala-fasttemplate.txt ├── license-github.com-valyala-tcplisten.txt ├── license-github.com-xeipuuv-gojsonpointer.txt ├── license-github.com-xeipuuv-gojsonreference.txt ├── license-github.com-xeipuuv-gojsonschema.txt ├── license-github.com-xordataexchange-crypt.txt ├── license-github.com-yalp-jsonpath.txt ├── license-github.com-yudai-gojsondiff.txt ├── license-github.com-yudai-golcs.txt ├── license-github.com-yuin-goldmark.txt ├── license-golang.org-x-crypto.txt ├── license-golang.org-x-mod.txt ├── license-golang.org-x-net.txt ├── license-golang.org-x-sync.txt ├── license-golang.org-x-sys.txt ├── license-golang.org-x-term.txt ├── license-golang.org-x-text.txt ├── license-golang.org-x-time.txt ├── license-golang.org-x-tools.txt ├── license-golang.org-x-xerrors.txt ├── license-gopkg.in-check.v1.txt ├── license-gopkg.in-fsnotify.v1.txt ├── license-gopkg.in-go-playground-assert.v1.txt ├── license-gopkg.in-go-playground-validator.v8.txt ├── license-gopkg.in-ini.v1.txt ├── license-gopkg.in-mgo.v2.txt ├── license-gopkg.in-tomb.v1.txt ├── license-gopkg.in-yaml.v2.txt └── license-gopkg.in-yaml.v3.txt ├── logger ├── file-rotatelogs │ ├── .gitignore │ ├── .travis.yml │ ├── Changes │ ├── LICENSE │ ├── README.md │ ├── event.go │ ├── example_test.go │ ├── interface.go │ ├── internal │ │ └── option │ │ │ └── option.go │ ├── internal_test.go │ ├── options.go │ ├── rotatelogs.go │ ├── rotatelogs_test.go │ └── sync.go └── logger.go ├── pool └── pool.go ├── predef ├── const.go ├── debug.go ├── release.go └── version.go ├── server ├── api │ └── server.go ├── client.go ├── config.go ├── conn.go ├── http.go ├── http_test.go ├── server.go ├── sync │ ├── create.go │ ├── map.go │ ├── map_bench_test.go │ ├── map_reference_test.go │ └── map_test.go ├── testdata │ ├── config.yaml │ └── users.yaml ├── tls.go ├── tls_test.go ├── user_test.go └── web │ ├── api │ ├── api.go │ └── api_test.go │ ├── embed.go │ ├── service │ ├── service.go │ └── service_test.go │ ├── web.go │ └── web_test.go ├── test ├── integrate_test.go ├── p2p_test.go ├── quic_test.go ├── services_test.go ├── tls_test.go └── tunnel_test.go ├── util ├── args.go ├── blockvalue.go ├── blockvalue_test.go ├── path.go ├── path_test.go ├── portrange.go ├── portrange_test.go ├── rand.go └── stdio.go └── web ├── front ├── .editorconfig ├── .env ├── .env.development ├── .env.production ├── .env.test ├── .eslintignore ├── .eslintrc.cjs ├── .prettierignore ├── .prettierrc.cjs ├── .stylelintignore ├── .stylelintrc.cjs ├── LICENSE ├── README.md ├── README_CN.md ├── build │ ├── getEnv.ts │ ├── plugins.ts │ └── proxy.ts ├── commitlint.config.cjs ├── index.html ├── lint-staged.config.cjs ├── package-lock.json ├── package.json ├── postcss.config.cjs ├── public │ ├── logo.png │ └── vue.svg ├── src │ ├── App.vue │ ├── api │ │ ├── helper │ │ │ └── checkStatus.ts │ │ ├── index.ts │ │ ├── interface │ │ │ └── index.ts │ │ └── modules │ │ │ ├── clientConfig.ts │ │ │ ├── connection.ts │ │ │ ├── login.ts │ │ │ ├── server.ts │ │ │ ├── serverConfig.ts │ │ │ └── userInfo.ts │ ├── assets │ │ ├── fonts │ │ │ ├── MetroDF.ttf │ │ │ └── font.scss │ │ ├── iconfont │ │ │ ├── iconfont.scss │ │ │ └── iconfont.ttf │ │ ├── images │ │ │ ├── 403.png │ │ │ ├── 404.png │ │ │ ├── 500.png │ │ │ ├── login_bg.svg │ │ │ ├── login_left.png │ │ │ ├── login_left1.png │ │ │ ├── login_left2.png │ │ │ ├── login_left3.png │ │ │ ├── login_left4.png │ │ │ ├── login_left5.png │ │ │ ├── logo.svg │ │ │ ├── logo_m.png │ │ │ ├── logo_m_en.png │ │ │ ├── logo_pc.png │ │ │ ├── logo_pc_en.png │ │ │ └── welcome.png │ │ └── json │ │ │ ├── authMenuList-en.json │ │ │ └── authMenuList.json │ ├── components │ │ ├── Anchor │ │ │ └── index.vue │ │ ├── ClientConfigForm │ │ │ ├── components │ │ │ │ ├── GeneralSetting.vue │ │ │ │ ├── LogSetting.vue │ │ │ │ ├── SentrySetting.vue │ │ │ │ ├── ServiceSetting.vue │ │ │ │ ├── TCPForwardSetting.vue │ │ │ │ └── WebRTCSetting.vue │ │ │ ├── index.scss │ │ │ ├── index.vue │ │ │ └── interface │ │ │ │ └── index.ts │ │ ├── ConnectionTable │ │ │ └── index.vue │ │ ├── ErrorMessage │ │ │ ├── 403.vue │ │ │ ├── 404.vue │ │ │ ├── 500.vue │ │ │ └── index.scss │ │ ├── Loading │ │ │ ├── index.scss │ │ │ └── index.vue │ │ ├── ServerConfigForm │ │ │ ├── components │ │ │ │ ├── APISetting.vue │ │ │ │ ├── ConnectionSetting.vue │ │ │ │ ├── GeneralSetting.vue │ │ │ │ ├── HostSetting.vue │ │ │ │ ├── NetworkSetting.vue │ │ │ │ ├── SecuritySetting.vue │ │ │ │ ├── TCPSetting.vue │ │ │ │ └── UserSetting.vue │ │ │ ├── index.scss │ │ │ ├── index.vue │ │ │ └── interface │ │ │ │ └── index.ts │ │ ├── SwitchDark │ │ │ └── index.vue │ │ ├── UsageTooltip │ │ │ └── index.vue │ │ └── Verify │ │ │ └── index.vue │ ├── config │ │ ├── index.ts │ │ ├── nprogress.ts │ │ ├── piniaPersist.ts │ │ └── serviceLoading.ts │ ├── enums │ │ └── httpEnum.ts │ ├── hooks │ │ ├── interface │ │ │ └── index.ts │ │ └── useTheme.ts │ ├── languages │ │ ├── index.ts │ │ └── lang │ │ │ ├── en.ts │ │ │ └── zh.ts │ ├── layouts │ │ ├── LayoutClassic │ │ │ ├── index.scss │ │ │ └── index.vue │ │ ├── components │ │ │ ├── Footer │ │ │ │ ├── index.scss │ │ │ │ └── index.vue │ │ │ ├── Header │ │ │ │ ├── ToolBarLeft.vue │ │ │ │ ├── ToolBarRight.vue │ │ │ │ └── components │ │ │ │ │ ├── AssemblySize.vue │ │ │ │ │ ├── Avatar.vue │ │ │ │ │ ├── Breadcrumb.vue │ │ │ │ │ ├── CollapseIcon.vue │ │ │ │ │ ├── Fullscreen.vue │ │ │ │ │ ├── Guide.vue │ │ │ │ │ ├── InfoDialog.vue │ │ │ │ │ ├── InfoForm.vue │ │ │ │ │ ├── LanguageSelector.vue │ │ │ │ │ └── ThemeSetting.vue │ │ │ ├── Main │ │ │ │ ├── components │ │ │ │ │ └── Maximize.vue │ │ │ │ ├── index.scss │ │ │ │ └── index.vue │ │ │ ├── Menu │ │ │ │ └── SubMenu.vue │ │ │ ├── Tabs │ │ │ │ ├── components │ │ │ │ │ └── MoreButton.vue │ │ │ │ ├── index.scss │ │ │ │ └── index.vue │ │ │ └── ThemeDrawer │ │ │ │ ├── index.scss │ │ │ │ └── index.vue │ │ └── index.vue │ ├── main.ts │ ├── routers │ │ ├── index.ts │ │ └── modules │ │ │ ├── dynamicRouter.ts │ │ │ └── staticRouter.ts │ ├── stores │ │ ├── index.ts │ │ ├── interface │ │ │ └── index.ts │ │ └── modules │ │ │ ├── auth.ts │ │ │ ├── global.ts │ │ │ ├── keepAlive.ts │ │ │ ├── metadata.ts │ │ │ ├── tabs.ts │ │ │ └── user.ts │ ├── styles │ │ ├── common.scss │ │ ├── element-dark.scss │ │ ├── element.scss │ │ ├── reset.scss │ │ ├── theme │ │ │ ├── aside.ts │ │ │ ├── header.ts │ │ │ └── menu.ts │ │ └── var.scss │ ├── typings │ │ ├── global.d.ts │ │ └── window.d.ts │ ├── utils │ │ ├── color.ts │ │ ├── eleValidate.ts │ │ ├── errorHandler.ts │ │ ├── index.ts │ │ ├── map.ts │ │ ├── mittBus.ts │ │ └── svg.ts │ ├── views │ │ ├── config │ │ │ ├── ClientConfig │ │ │ │ └── index.vue │ │ │ └── ServerConfig │ │ │ │ └── index.vue │ │ ├── connection │ │ │ ├── index.scss │ │ │ └── index.vue │ │ ├── home │ │ │ ├── index.scss │ │ │ └── index.vue │ │ ├── login │ │ │ ├── components │ │ │ │ └── LoginForm.vue │ │ │ ├── index.scss │ │ │ └── index.vue │ │ └── pprof │ │ │ └── index.vue │ └── vite-env.d.ts ├── tsconfig.json └── vite.config.ts └── server ├── middleware ├── jwt.go └── jwt_test.go ├── model ├── request │ ├── connection.go │ ├── permission.go │ ├── system.go │ └── user.go └── response │ └── response.go ├── tokenManager.go └── util ├── browser.go ├── https.go ├── jwt.go ├── jwt_test.go ├── net.go ├── net_test.go ├── system.go └── system_win.go /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.x86_64-unknown-linux-gnu] 2 | linker = "x86_64-linux-gnu-gcc" 3 | rustflags = ["-C", "target-feature=+crt-static"] 4 | 5 | [target.aarch64-unknown-linux-gnu] 6 | linker = "aarch64-linux-gnu-gcc" 7 | rustflags = ["-C", "target-feature=+crt-static"] 8 | 9 | [target.riscv64gc-unknown-linux-gnu] 10 | linker = "riscv64-linux-gnu-gcc" 11 | rustflags = ["-C", "target-feature=+crt-static"] 12 | 13 | [target.x86_64-pc-windows-msvc] 14 | linker = "link" 15 | rustflags = ["-C", "target-feature=+crt-static"] -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | [submodule "dep/_google-webrtc"] 16 | path = libcs/dep/_google-webrtc 17 | url = https://git.mirror.iscas.ac.cn/ao-space/google-webrtc.git 18 | branch = main 19 | shallow = true 20 | ignore = dirty 21 | [submodule "dep/_msquic"] 22 | path = libcs/dep/_msquic 23 | url = https://github.com/microsoft/msquic 24 | ignore = dirty 25 | -------------------------------------------------------------------------------- /BuildOnWindows.md: -------------------------------------------------------------------------------- 1 | # 构建指南(Windows) 2 | 3 | ## 1.拉取子模块代码 4 | git submodule update --init --recursive 5 | 6 | ## 2.环境准备 7 | ### webrtc编译环境(webrtc版本差异会导致所依赖的msvc工具差异): 8 | 安装visual studio2022及组件\ 9 | 需要的visual studio组件: 10 | * MSVC: v143 11 | * Windows11 SDK(10.0.22621.0) 12 | * 适用于v143生成工具的C++ MFC 13 | * 适用于v143生成工具的C++ ATL 14 | * 适用于Windows的C++ Clang工具 15 | 16 | 通过vs_installer在命令行安装: \ 17 | `$ PATH_TO_INSTALLER.EXE 18 | --add Microsoft.VisualStudio.Workload.NativeDesktop 19 | --add Microsoft.VisualStudio.Component.VC.ATLMFC 20 | --add Microsoft.VisualStudio.Component.Windows11SDK.22621 21 | --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 22 | --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang 23 | --includeRecommended` 24 | ### msquic编译环境: 25 | [msquic构建文档](https://github.com/microsoft/msquic/blob/main/docs/BUILD.md) \ 26 | 根据构建文档安装依赖项(.Net Core,Cmake) \ 27 | 也可通过winget包管理器安装依赖项: \ 28 | winget install Microsoft.DotNet.SDK.8 \ 29 | winget install Microsoft.DotNet.DesktopRuntime.8 \ 30 | winget install --id=Kitware.CMake -e 31 | 32 | 33 | ## 3.编译 34 | 在powershell 7中执行根目录下的build.ps1构建脚本 -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["bin"] 3 | resolver = "2" 4 | 5 | [workspace.package] 6 | authors = ["Zhiyi Weng"] 7 | version = "2.2.2" 8 | edition = "2021" 9 | description = "Fast WebSocket(s)/HTTP(s)/TCP relay proxy with WebRTC P2P supports." 10 | 11 | [patch.crates-io] 12 | webrtc = { git = "https://github.com/vyloy/webrtc.git", branch = "master" } 13 | rcgen = { git = "https://github.com/vyloy/rcgen.git", branch = "main" } 14 | x509-parser = { git = "https://github.com/vyloy/x509-parser.git", branch = "master" } 15 | -------------------------------------------------------------------------------- /Dockerfile-client: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | FROM debian:experimental 16 | 17 | ARG CI_COMMIT_SHA 18 | ARG CI_PIPELINE_ID 19 | ENV CI_COMMIT_SHA=${CI_COMMIT_SHA} 20 | ENV CI_PIPELINE_ID=${CI_PIPELINE_ID} 21 | ENV TZ=Asia/Shanghai 22 | 23 | RUN apt update && DEBIAN_FRONTEND=noninteractive TZ=Asia/Shanghai apt-get -y install tzdata ca-certificates && rm -rf /var/lib/apt/lists/* 24 | 25 | COPY release/* / 26 | RUN cp /gt-linux-`arch` /usr/bin/gt && ln -s /usr/bin/gt /usr/bin/client && rm -f /*-gt 27 | 28 | ENTRYPOINT ["/usr/bin/gt", "client", "-c", "/opt/config/aonetwork-client.yml"] 29 | -------------------------------------------------------------------------------- /Dockerfile-server: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | FROM debian:experimental 16 | 17 | ARG CI_COMMIT_SHA 18 | ARG CI_PIPELINE_ID 19 | ENV CI_COMMIT_SHA=${CI_COMMIT_SHA} 20 | ENV CI_PIPELINE_ID=${CI_PIPELINE_ID} 21 | ENV TZ=Asia/Shanghai 22 | 23 | RUN apt update && DEBIAN_FRONTEND=noninteractive TZ=Asia/Shanghai apt-get -y install tzdata ca-certificates && rm -rf /var/lib/apt/lists/* 24 | 25 | COPY release/* / 26 | RUN cp /gt-linux-`arch` /usr/bin/gt && rm -f /*-gt 27 | COPY entrypoint-server.sh /opt/entrypoint.sh 28 | RUN chmod +x /opt/entrypoint.sh 29 | 30 | ENTRYPOINT ["/opt/entrypoint.sh"] 31 | -------------------------------------------------------------------------------- /bin/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "gt" 3 | version.workspace = true 4 | edition.workspace = true 5 | authors.workspace = true 6 | description.workspace = true 7 | 8 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 9 | 10 | [dependencies] 11 | clap = { version = "4.4.17", features = ["derive"] } 12 | env_logger = "0.10.1" 13 | log = "0.4.20" 14 | anyhow = "1.0.79" 15 | bytes = "1.5.0" 16 | http-body-util = "0.1.0" 17 | hyper = { version = "1.1.0", features = ["http1", "client"] } 18 | serde = { version = "1.0.195", features = ["derive"] } 19 | serde_json = "1.0.111" 20 | thiserror = "1.0.56" 21 | tokio = { version = "1.35.1", features = ["process"] } 22 | url = "2.5.0" 23 | webrtc = "0.9.0" 24 | serde_yaml = "0.9.30" 25 | notify = { version = "6.1.1", default-features = false, features = ["macos_kqueue"] } 26 | futures = "0.3.30" 27 | time = "0.3.35" 28 | reqwest = { version = "0.11", features = ["json"] } 29 | -------------------------------------------------------------------------------- /bin/src/lib.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | pub mod cs; 18 | pub mod manager; 19 | pub mod peer; 20 | 21 | 22 | -------------------------------------------------------------------------------- /bin/tests/common/log.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | use std::sync::Once; 18 | 19 | use env_logger::Env; 20 | 21 | static INIT: Once = Once::new(); 22 | 23 | pub fn init() { 24 | INIT.call_once(|| { 25 | let _ = env_logger::Builder::from_env(Env::default().default_filter_or("debug")) 26 | .is_test(true) 27 | .try_init(); 28 | }); 29 | } 30 | -------------------------------------------------------------------------------- /bin/tests/common/mod.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | pub mod compat; 18 | pub mod log; 19 | -------------------------------------------------------------------------------- /entrypoint-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | cat > /opt/aonetwork-server.yml < 1e9 { 18 | panic("bad max token size") 19 | } 20 | if n < len(s.buf) { 21 | s.buf = make([]byte, n) 22 | } 23 | s.maxTokenSize = n 24 | } 25 | 26 | // ErrOrEOF is like Err, but returns EOF. Used to test a corner case. 27 | func (s *Scanner) ErrOrEOF() error { 28 | return s.err 29 | } 30 | -------------------------------------------------------------------------------- /libcs/client/client_test.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package client 16 | 17 | import ( 18 | "testing" 19 | "time" 20 | ) 21 | 22 | func TestClientWaitUntilReady(t *testing.T) { 23 | c, err := New(nil, nil) 24 | if err != nil { 25 | t.Fatal(err) 26 | } 27 | err = c.WaitUntilReady(2 * time.Second) 28 | if err != errTimeout { 29 | t.Fatal("err != timeout") 30 | } 31 | go func() { 32 | time.Sleep(time.Second) 33 | c.addTunnel(&conn{}) 34 | }() 35 | err = c.WaitUntilReady(30 * time.Second) 36 | if err == errTimeout { 37 | t.Fatal("err == timeout") 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /libcs/client/web/embed.go: -------------------------------------------------------------------------------- 1 | //go:build release || !nostatic 2 | 3 | package web 4 | 5 | import "embed" 6 | 7 | //go:embed dist/* 8 | var embeddedFS embed.FS 9 | 10 | func init() { 11 | FS = embeddedFS 12 | } 13 | -------------------------------------------------------------------------------- /libcs/client/webrtc/datachannel.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #ifndef DATACHANNEL_HPP 16 | #define DATACHANNEL_HPP 17 | 18 | #include 19 | 20 | class DataChannelObserver : public webrtc::DataChannelObserver { 21 | public: 22 | webrtc::DataChannelInterface *dataChannel; 23 | 24 | DataChannelObserver(webrtc::DataChannelInterface *dataChannel, void *userData); 25 | ~DataChannelObserver(); 26 | 27 | protected: 28 | void OnStateChange(); 29 | void OnMessage(const webrtc::DataBuffer &buffer); 30 | void OnBufferedAmountChange(uint64_t sent_data_size); 31 | 32 | private: 33 | void *userData; 34 | }; 35 | 36 | #endif /* DATACHANNEL_HPP */ 37 | -------------------------------------------------------------------------------- /libcs/client/webrtc/icecandidate.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package webrtc 16 | 17 | type ICECandidate struct { 18 | SDPMid string `json:"sdpMid"` 19 | SDPMLineIndex int `json:"sdpMLineIndex"` 20 | SDP string `json:"candidate"` 21 | } 22 | -------------------------------------------------------------------------------- /libcs/client/webrtc/logging.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #ifndef LOGGING_H 16 | #define LOGGING_H 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | void SetLog(int severity); 23 | void onLogMessage(int severity, char *message, char *tag); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif 28 | 29 | #endif /* LOGGING_H */ 30 | -------------------------------------------------------------------------------- /libcs/client/webrtc/sessiondescription.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package webrtc 16 | 17 | var SDPType = struct { 18 | Offer string 19 | PrAnswer string 20 | Answer string 21 | RollBack string 22 | }{ 23 | Offer: "offer", 24 | PrAnswer: "prAnswer", 25 | Answer: "answer", 26 | RollBack: "rollBack", 27 | } 28 | 29 | var sdpType2IntMap = map[string]int{ 30 | "offer": 0, 31 | "prAnswer": 1, 32 | "answer": 2, 33 | "rollBack": 3, 34 | } 35 | 36 | var sdpType2StringMap = map[int]string{ 37 | 0: "offer", 38 | 1: "prAnswer", 39 | 2: "answer", 40 | 3: "rollBack", 41 | } 42 | 43 | type SessionDescription struct { 44 | Type string `json:"type"` 45 | SDP string `json:"sdp"` 46 | } 47 | -------------------------------------------------------------------------------- /libcs/client/webrtc/threadpool.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package webrtc 16 | 17 | /* 18 | #include "threadpool.h" 19 | */ 20 | import "C" 21 | import "unsafe" 22 | 23 | type ThreadPool struct { 24 | p unsafe.Pointer 25 | } 26 | 27 | func NewThreadPool(threadNum uint32) *ThreadPool { 28 | return &ThreadPool{p: C.NewThreadPool(C.uint32_t(threadNum))} 29 | } 30 | 31 | func (tp *ThreadPool) GetThread() unsafe.Pointer { 32 | return C.GetThreadPoolThread(tp.p) 33 | } 34 | 35 | func (tp *ThreadPool) GetSocketThread() unsafe.Pointer { 36 | return C.GetThreadPoolSocketThread(tp.p) 37 | } 38 | 39 | func (tp *ThreadPool) Close() { 40 | C.DeleteThreadPool(tp.p) 41 | } 42 | -------------------------------------------------------------------------------- /libcs/client/webrtc/threadpool.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #ifndef THREADPOOL_H 16 | #define THREADPOOL_H 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | #include 23 | 24 | void *NewThreadPool(uint32_t threadNum); 25 | void *GetThreadPoolThread(void *threadPool); 26 | void *GetThreadPoolSocketThread(void *threadPool); 27 | void DeleteThreadPool(void *threadPool); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif /* THREADPOOL_H */ -------------------------------------------------------------------------------- /libcs/config/duration.go: -------------------------------------------------------------------------------- 1 | package config 2 | 3 | import ( 4 | "encoding/json" 5 | "gopkg.in/yaml.v3" 6 | "time" 7 | ) 8 | 9 | type Duration struct { 10 | time.Duration 11 | } 12 | 13 | // String flag.Value Interface 14 | func (d *Duration) String() string { 15 | return d.Duration.String() 16 | } 17 | 18 | // Set flag.Value Interface 19 | func (d *Duration) Set(s string) error { 20 | var err error 21 | d.Duration, err = time.ParseDuration(s) 22 | return err 23 | } 24 | 25 | // Get flag.Getter Interface 26 | func (d *Duration) Get() interface{} { 27 | return d.Duration 28 | } 29 | 30 | func (d *Duration) UnmarshalYAML(value *yaml.Node) (err error) { 31 | duration, err := time.ParseDuration(value.Value) 32 | if err != nil { 33 | return 34 | } 35 | d.Duration = duration 36 | return 37 | } 38 | 39 | func (d Duration) MarshalYAML() (interface{}, error) { 40 | return d.Duration.String(), nil 41 | } 42 | 43 | func (d *Duration) UnmarshalJSON(data []byte) (err error) { 44 | var s string 45 | if err = json.Unmarshal(data, &s); err != nil { 46 | return err 47 | } 48 | duration, err := time.ParseDuration(s) 49 | if err != nil { 50 | return err 51 | } 52 | d.Duration = duration 53 | return nil 54 | } 55 | 56 | func (d Duration) MarshalJSON() ([]byte, error) { 57 | return json.Marshal(d.Duration.String()) 58 | } 59 | -------------------------------------------------------------------------------- /libcs/config/testdata/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | version: 1.0 16 | options: 17 | server: tls://localhost:443 18 | serverCertInsecure: true 19 | serverTimeout: 60s 20 | service: https://localhost:8443 21 | serviceCertInsecure: true 22 | serviceTimeout: 180s -------------------------------------------------------------------------------- /libcs/config/testdata/pointer.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | boolPointer2: false 16 | stringSlicePointer2: 17 | - ^c$ 18 | - ^d$ 19 | uint32Pointer2: 2 20 | -------------------------------------------------------------------------------- /libcs/conn/msquic/connection.h: -------------------------------------------------------------------------------- 1 | #ifndef CONNECTION_H 2 | #define CONNECTION_H 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | void *NewConnection(void *context, char *serverName, uint16_t serverPort, uint64_t idleTimeoutMs, 13 | char *certFile, bool unsecure); 14 | void DeleteConnection(void *conn); 15 | void *OpenStream(void *conn, void *context); 16 | void *AcceptStream(void *conn, void *context); 17 | char *GetConnectionAddr(void *conn, bool local); 18 | void SetConnectionContext(void *conn, void *context); 19 | void SetConnectionIdleTimeout(void *conn, uint64_t idleTimeoutMs); 20 | 21 | void OnConnectionConnected(void *conn, void *context); 22 | void OnConnectionShutdownComplete(void *conn, void *context); 23 | void OnPeerStreamStarted(void *conn, void *stream, void *context); 24 | 25 | #ifdef __cplusplus 26 | } 27 | #endif 28 | 29 | #endif /* CONNECTION_H */ -------------------------------------------------------------------------------- /libcs/conn/msquic/connection.hpp: -------------------------------------------------------------------------------- 1 | #ifndef CONNECTION_HPP 2 | #define CONNECTION_HPP 3 | 4 | #include 5 | 6 | #include "stream.hpp" 7 | 8 | class Connection { 9 | public: 10 | Connection(void *context); 11 | Connection(HQUIC connection); 12 | ~Connection(); 13 | bool Start(char *serverName, uint16_t serverPort, uint64_t IdleTimeoutMs, char *certFile, 14 | bool unsecure); 15 | Stream *OpenStream(void *context); 16 | Stream *AcceptStream(void *context); 17 | char *GetAddr(bool local); 18 | void SetContext(void *context); 19 | void SetIdleTimeout(uint64_t idleTimeoutMs); 20 | 21 | private: 22 | HQUIC configuration = {}; 23 | HQUIC connection = {}; 24 | void *context = {}; 25 | QUIC_ADDR_STR localAddrStr = {}; 26 | QUIC_ADDR_STR remoteAddrStr = {}; 27 | QUIC_SETTINGS settings = {}; 28 | 29 | static QUIC_STATUS redirectCallback(HQUIC connection, void *context, 30 | QUIC_CONNECTION_EVENT *event); 31 | QUIC_STATUS callback(QUIC_CONNECTION_EVENT *event); 32 | }; 33 | 34 | #endif /* CONNECTION_HPP */ -------------------------------------------------------------------------------- /libcs/conn/msquic/listener.h: -------------------------------------------------------------------------------- 1 | #ifndef LISTENER_H 2 | #define LISTENER_H 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #include 9 | 10 | void *NewListener(char *addr, uint64_t idleTimeoutMs, char *keyFile, char *certFile, char *password, 11 | void *context); 12 | void DeleteListener(void *listener); 13 | char *GetListenerAddr(void *listener); 14 | 15 | void OnNewConnection(void *listener, void *conn, void *context); 16 | void OnListenerStopComplete(void *listener, void *context); 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif /* LISTENER_H */ -------------------------------------------------------------------------------- /libcs/conn/msquic/msquicConn.go: -------------------------------------------------------------------------------- 1 | package msquic 2 | 3 | import ( 4 | "crypto/tls" 5 | "net" 6 | ) 7 | 8 | const msquicIdleTimeOutMs uint64 = 100_000 9 | 10 | type MsquicConn struct { 11 | net.Conn // *stream 12 | MsquicConnection *Connection 13 | } 14 | 15 | func (q *MsquicConn) Close() (err error) { 16 | err1 := q.Conn.Close() 17 | err2 := q.MsquicConnection.Close() 18 | if err1 != nil { 19 | return err1 20 | } 21 | return err2 22 | } 23 | 24 | func MsquicDial(addr string, config *tls.Config) (conn net.Conn, err error) { 25 | unsecure := config.InsecureSkipVerify 26 | msquicConnection, err := NewConnection(addr, msquicIdleTimeOutMs, "", unsecure) 27 | if err != nil { 28 | return 29 | } 30 | stream, err := msquicConnection.OpenStream() 31 | if err != nil { 32 | return 33 | } 34 | conn = &MsquicConn{ 35 | Conn: stream, 36 | MsquicConnection: msquicConnection, 37 | } 38 | return 39 | } 40 | 41 | func MsquicListen(addr string, keyFile string, certFile string) (net.Listener, error) { 42 | return NewListenr(addr, msquicIdleTimeOutMs, keyFile, certFile, "") 43 | } 44 | -------------------------------------------------------------------------------- /libcs/conn/msquic/quic.go: -------------------------------------------------------------------------------- 1 | package msquic 2 | 3 | /* 4 | #include "quic.h" 5 | */ 6 | import "C" 7 | 8 | func init() { 9 | ok := C.Init() 10 | if !ok { 11 | panic("msquic init failed") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /libcs/conn/msquic/quic.h: -------------------------------------------------------------------------------- 1 | #ifndef QUIC_H 2 | #define QUIC_H 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #include 9 | 10 | bool Init(); 11 | 12 | #ifdef __cplusplus 13 | } 14 | #endif 15 | 16 | #endif /* QUIC_H */ -------------------------------------------------------------------------------- /libcs/conn/msquic/quic.hpp: -------------------------------------------------------------------------------- 1 | #ifndef QUIC_HPP 2 | #define QUIC_HPP 3 | 4 | #include 5 | 6 | extern const QUIC_API_TABLE *MsQuic; 7 | extern HQUIC Registration; 8 | extern const QUIC_BUFFER ALPN; 9 | 10 | const char *StringStatus(QUIC_STATUS status); 11 | const char *StringEvent(QUIC_CONNECTION_EVENT_TYPE type); 12 | const char *StringEvent(QUIC_STREAM_EVENT_TYPE type); 13 | 14 | #endif /* QUIC_HPP */ -------------------------------------------------------------------------------- /libcs/conn/msquic/stream.h: -------------------------------------------------------------------------------- 1 | #ifndef STREAM_H 2 | #define STREAM_H 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #include 9 | #include 10 | 11 | void DeleteStream(void *stream); 12 | void StreamSend(void *stream, void *data, size_t length); 13 | void StreamReceiveComplete(void *stream, uint64_t bufferLength); 14 | void SetStreamContext(void *stream, void *context); 15 | 16 | void OnStreamStartComplete(void *stream, void *context); 17 | void OnStreamShutdownComplete(void *stream, void *context); 18 | void OnStreamReceive(void *stream, void *context, void *data, size_t length); 19 | void OnStreamSendComplete(void *stream, void *context); 20 | 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | 25 | #endif /* STREAM_H */ -------------------------------------------------------------------------------- /libcs/conn/msquic/stream.hpp: -------------------------------------------------------------------------------- 1 | #ifndef STREAM_HPP 2 | #define STREAM_HPP 3 | 4 | #include 5 | 6 | class Stream { 7 | public: 8 | Stream(void *context); 9 | Stream(HQUIC stream); 10 | ~Stream(); 11 | bool Start(HQUIC connection); 12 | bool Send(void *data, uint32_t dataLen); 13 | void ReceiveComplete(uint64_t bufferLength); 14 | void SetContext(void *context); 15 | 16 | private: 17 | HQUIC stream = {}; 18 | void *context = {}; 19 | QUIC_BUFFER sendBuffer = {}; 20 | 21 | QUIC_STATUS callback(QUIC_STREAM_EVENT *event); 22 | static QUIC_STATUS redirectCallback(HQUIC stream, void *context, QUIC_STREAM_EVENT *event); 23 | }; 24 | 25 | #endif /* STREAM_HPP */ -------------------------------------------------------------------------------- /libcs/dep/patch/openssl.patch: -------------------------------------------------------------------------------- 1 | diff --git a/libcs/dep/_msquic/submodules/CMakeLists.txt b/libcs/dep/_msquic/submodules/CMakeLists.txt 2 | --- a/libcs/dep/_msquic/submodules/CMakeLists.txt 3 | +++ b/libcs/dep/_msquic/submodules/CMakeLists.txt 4 | @@ -241,6 +241,10 @@ 5 | set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/${QUIC_OPENSSL}/Configure linux-armv4) 6 | endif() 7 | list(APPEND OPENSSL_CONFIG_FLAGS -latomic) 8 | + elseif (CMAKE_TARGET_ARCHITECTURE STREQUAL x64) 9 | + set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/${QUIC_OPENSSL}/Configure linux-x86_64) 10 | + elseif (CMAKE_TARGET_ARCHITECTURE STREQUAL riscv64) 11 | + set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/${QUIC_OPENSSL}/Configure linux64-riscv64) 12 | else() 13 | set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/${QUIC_OPENSSL}/config 14 | CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}) 15 | -------------------------------------------------------------------------------- /libcs/example/config/client.yaml: -------------------------------------------------------------------------------- 1 | version: 1.0 2 | services: 3 | # http 转发 4 | - local: http://127.0.0.1:80 5 | hostPrefix: blog 6 | # http 转发 7 | - local: http://127.0.0.1:80 8 | hostPrefix: web 9 | # https sni 转发 10 | - local: https://www.baidu.com 11 | hostPrefix: www 12 | # server 10022 tcp 端口转发流量到 client 本地 22 tcp 端口 13 | - local: tcp://127.0.0.1:22 14 | # 服务器端口 15 | remoteTCPPort: 10022 16 | # 如果 10022 端口被占用,则使用服务器随机端口 17 | remoteTCPRandom: true 18 | options: 19 | id: id-should-be-overwritten 20 | secret: secret-should-be-overwritten 21 | # 服务器地址 22 | # remote: tls://1.1.1.1:4443 23 | remote: tcp://1.1.1.1:80 24 | # 连接池并发连接数 25 | remoteConnections: 5 26 | logLevel: info -------------------------------------------------------------------------------- /libcs/example/config/server.yaml: -------------------------------------------------------------------------------- 1 | version: 1.0 2 | options: 3 | addr: 80 4 | sniAddr: 443 5 | # tlsAddr: 4443 6 | # certFile: /opt/crt/tls.crt 7 | # keyFile: /opt/crt/tls.key 8 | logLevel: info 9 | timeout: 90s 10 | stunAddr: 3478 11 | users: 12 | id-should-be-overwritten: 13 | secret: secret-should-be-overwritten 14 | tcp: 15 | - range: 10000-15000 16 | - range: 20000-25000 17 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-BurntSushi-toml.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 TOML authors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-CloudyKit-fastprinter.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 CloudyKit 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-Shopify-goreferrer.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Steven Normore 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-aymerick-raymond.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Aymerick JEHANNE 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-buger-jsonparser.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Leonid Bugaev 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-codegangsta-inject.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Jeremy Saenz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-cpuguy83-go-md2man.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Brian Goff 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-davecgh-go-spew.txt: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2012-2016 Dave Collins 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-dgryski-go-farm.txt: -------------------------------------------------------------------------------- 1 | As this is a highly derivative work, I have placed it under the same license as the original implementation: 2 | 3 | Copyright (c) 2014-2017 Damian Gryski 4 | Copyright (c) 2016-2017 Nicola Asuni - Tecnick.com 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | 24 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-dustin-go-humanize.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2005-2008 Dustin Sallings 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | 21 | 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-eknkc-amber.txt: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2012 Ekin Koc ekin@eknkc.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-etcd-io-bbolt.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Ben Johnson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-fatih-structs.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Fatih Arslan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-gavv-httpexpect.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Victor Gaydov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-getsentry-sentry-go.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019 Sentry (https://sentry.io) and individual contributors. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | 9 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 10 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-gin-contrib-sse.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Manuel Martínez-Almeida 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-gin-gonic-gin.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Manuel Martínez-Almeida 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-go-errors-errors.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Conrad Irwin 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-go-martini-martini.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Jeremy Saenz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-gobwas-httphead.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Sergey Kamardin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-gobwas-ws.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017-2018 Sergey Kamardin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-godbus-dbus-v5.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Georg Reinke (), Google 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions 6 | are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above copyright 12 | notice, this list of conditions and the following disclaimer in the 13 | documentation and/or other materials provided with the distribution. 14 | 15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 21 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 22 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 23 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 24 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-golang-jwt-jwt.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Dave Grijalva 2 | Copyright (c) 2021 golang-jwt maintainers 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | 10 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-gopherjs-gopherjs.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Richard Musiol. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above 10 | copyright notice, this list of conditions and the following disclaimer 11 | in the documentation and/or other materials provided with the 12 | distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 15 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 16 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 17 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 18 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 20 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-gorilla-websocket.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | Redistributions of source code must retain the above copyright notice, this 7 | list of conditions and the following disclaimer. 8 | 9 | Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 14 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 17 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-hpcloud-tail.txt: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | # © Copyright 2015 Hewlett Packard Enterprise Development LP 4 | Copyright (c) 2014 ActiveState 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-imkira-go-interpol.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Mario Freitas (imkira@gmail.com) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-inconshreveable-mousetrap.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014 Alan Shreve 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-iris-contrib-go.uuid.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013-2018 by Maxim Bublis 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-iris-contrib-pongo2.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2014 Florian Schlachter 4 | Copyright (c) 2019 Iris Authors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy of 7 | this software and associated documentation files (the "Software"), to deal in 8 | the Software without restriction, including without limitation the rights to 9 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 10 | the Software, and to permit persons to whom the Software is furnished to do so, 11 | subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 18 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 19 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 20 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-json-iterator-go.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 json-iterator 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-jtolds-gls.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, Space Monkey, Inc. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-k0kubun-colorstring.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Mitchell Hashimoto 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-kataras-neffos.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019-2020 Gerasimos Maropoulos 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-kataras-sitemap.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 Gerasimos Maropoulos 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-klauspost-cpuid.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Klaus Post 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-kr-pretty.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright 2012 Keith Rarick 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-kr-pty.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Keith Rarick 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without limitation 7 | the rights to use, copy, modify, merge, publish, distribute, 8 | sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall 13 | be included in all copies or substantial portions of the 14 | Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY 17 | KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 18 | WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 19 | PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS 20 | OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 21 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 22 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-kr-text.txt: -------------------------------------------------------------------------------- 1 | Copyright 2012 Keith Rarick 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-labstack-echo-v4.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2021 LabStack 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-labstack-gommon.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018 labstack 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-lestrrat-go-envload.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 lestrrat 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-lestrrat-go-strftime.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 lestrrat 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-mattn-go-colorable.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Yasuhiro Matsumoto 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-mattn-go-isatty.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) Yasuhiro MATSUMOTO 2 | 3 | MIT License (Expat) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-mattn-go-pointer.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 Yasuhiro Matsumoto 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-mediocregopher-radix-v3.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 17 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 19 | IN THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-mitchellh-go-homedir.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Mitchell Hashimoto 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-mitchellh-mapstructure.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Mitchell Hashimoto 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-moul-http2curl.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Manfred Touron 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-onsi-ginkgo.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2014 Onsi Fakhouri 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-onsi-gomega.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2014 Onsi Fakhouri 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pelletier-go-toml.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 - 2017 Thomas Pelletier, Eric Anderton 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pingcap-errors.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Dave Cheney 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pion-logging.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pion-randutil.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Pion 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pion-stun.txt: -------------------------------------------------------------------------------- 1 | Copyright 2018 Pion LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pion-transport.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pion-turn-v2.txt: -------------------------------------------------------------------------------- 1 | Copyright 2018 Pion LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-pkg-errors.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Dave Cheney 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-rs-xid.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Olivier Poitrey 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-rs-zerolog.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Olivier Poitrey 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-ryanuber-columnize.txt: -------------------------------------------------------------------------------- 1 | MIT LICENSE 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-schollz-closestmatch.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Zack 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-sergi-go-diff.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2016 The go-diff Authors. All rights reserved. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a 4 | copy of this software and associated documentation files (the "Software"), 5 | to deal in the Software without restriction, including without limitation 6 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | and/or sell copies of the Software, and to permit persons to whom the 8 | Software is furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included 11 | in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | DEALINGS IN THE SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-shurcooL-sanitized-anchor-name.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2015 Dmitri Shuralyov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-smartystreets-assertions.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 SmartyStreets, LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | 21 | NOTE: Various optional and subordinate components carry their own licensing 22 | requirements and restrictions. Use of those components is subject to the terms 23 | and conditions outlined the respective license of each component. 24 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-smartystreets-goconvey.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 SmartyStreets, LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | 21 | NOTE: Various optional and subordinate components carry their own licensing 22 | requirements and restrictions. Use of those components is subject to the terms 23 | and conditions outlined the respective license of each component. 24 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-spf13-cast.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Steve Francia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-spf13-jwalterweatherman.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Steve Francia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-spf13-viper.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Steve Francia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-stretchr-objx.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2014 Stretchr, Inc. 4 | Copyright (c) 2017-2018 objx contributors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-stretchr-testify.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-ugorji-go-codec.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2015 Ugorji Nwoke. 4 | All rights reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-ugorji-go.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2015 Ugorji Nwoke. 4 | All rights reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-urfave-negroni.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Jeremy Saenz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-valyala-bytebufferpool.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Aliaksandr Valialkin, VertaMedia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-valyala-fasthttp.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-present Aliaksandr Valialkin, VertaMedia 4 | Copyright (c) 2018-present Kirill Danshin 5 | Copyright (c) 2018-present Erik Dubbelboer 6 | Copyright (c) 2018-present FastHTTP Authors 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all 16 | copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | SOFTWARE. 25 | 26 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-valyala-fasttemplate.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Aliaksandr Valialkin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-valyala-tcplisten.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Aliaksandr Valialkin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-xordataexchange-crypt.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 XOR Data Exchange, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-yudai-golcs.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Iwasaki Yudai 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-github.com-yuin-goldmark.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Yusuke Inuzuka 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/licenses/license-gopkg.in-go-playground-assert.v1.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Dean Karn 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/licenses/license-gopkg.in-go-playground-validator.v8.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Dean Karn 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /libcs/logger/file-rotatelogs/.gitignore: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 16 | *.o 17 | *.a 18 | *.so 19 | 20 | # Folders 21 | _obj 22 | _test 23 | 24 | # Architecture specific extensions/prefixes 25 | *.[568vq] 26 | [568vq].out 27 | 28 | *.cgo1.go 29 | *.cgo2.c 30 | _cgo_defun.c 31 | _cgo_gotypes.go 32 | _cgo_export.* 33 | 34 | _testmain.go 35 | 36 | *.exe 37 | -------------------------------------------------------------------------------- /libcs/logger/file-rotatelogs/.travis.yml: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | language: go 16 | sudo: false 17 | go: 18 | - "1.14" 19 | - tip 20 | -------------------------------------------------------------------------------- /libcs/logger/file-rotatelogs/Changes: -------------------------------------------------------------------------------- 1 | Changes 2 | ======= 3 | 4 | v2.4.0 - 8 Sep 2020 5 | * Add WithRotationSize option to specify log ration when 6 | a certain file size is reached. (NOTE: this does not guarantee 7 | that the file size is exactly the size specified, but that it 8 | *exceeds* the specified size) 9 | -------------------------------------------------------------------------------- /libcs/logger/file-rotatelogs/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 lestrrat 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libcs/logger/file-rotatelogs/event.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package rotatelogs 16 | 17 | func (h HandlerFunc) Handle(e Event) { 18 | h(e) 19 | } 20 | 21 | func (e *FileRotatedEvent) Type() EventType { 22 | return FileRotatedEventType 23 | } 24 | 25 | func (e *FileRotatedEvent) PreviousFile() string { 26 | return e.prev 27 | } 28 | 29 | func (e *FileRotatedEvent) CurrentFile() string { 30 | return e.current 31 | } 32 | -------------------------------------------------------------------------------- /libcs/logger/file-rotatelogs/internal/option/option.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package option 16 | 17 | type Interface interface { 18 | Name() string 19 | Value() interface{} 20 | } 21 | 22 | type Option struct { 23 | name string 24 | value interface{} 25 | } 26 | 27 | func New(name string, value interface{}) *Option { 28 | return &Option{ 29 | name: name, 30 | value: value, 31 | } 32 | } 33 | 34 | func (o *Option) Name() string { 35 | return o.name 36 | } 37 | func (o *Option) Value() interface{} { 38 | return o.value 39 | } 40 | -------------------------------------------------------------------------------- /libcs/logger/file-rotatelogs/sync.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package rotatelogs 16 | 17 | func (rl *RotateLogs) Sync() error { 18 | rl.mutex.Lock() 19 | defer rl.mutex.Unlock() 20 | 21 | if rl.outFh == nil { 22 | return nil 23 | } 24 | 25 | return rl.outFh.Sync() 26 | } 27 | -------------------------------------------------------------------------------- /libcs/predef/debug.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | //go:build !release 16 | 17 | package predef 18 | 19 | import ( 20 | "log" 21 | "net/http" 22 | // used for prof 23 | _ "net/http/pprof" 24 | "os" 25 | "strings" 26 | ) 27 | 28 | // Debug enables the logs of read and write operations 29 | var Debug = false 30 | 31 | func init() { 32 | env, ok := os.LookupEnv("DEBUG_VAR") 33 | if ok { 34 | if strings.ToLower(env) == "true" { 35 | Debug = true 36 | } else { 37 | Debug = false 38 | } 39 | } 40 | prof, ok := os.LookupEnv("DEBUG_PROF") 41 | if ok { 42 | go func() { 43 | log.Println(http.ListenAndServe(prof, nil)) 44 | }() 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /libcs/predef/release.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | //go:build release 16 | 17 | package predef 18 | 19 | // Debug enables the logs of read and write operations 20 | const Debug = false 21 | -------------------------------------------------------------------------------- /libcs/predef/version.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package predef 16 | 17 | // Version string 18 | var Version = "dev" 19 | -------------------------------------------------------------------------------- /libcs/server/testdata/config.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | users: 16 | id1: 17 | secret: secret1 18 | id2: 19 | secret: secret2 20 | tcp: # 测试优先级是否高于全局 TCP 配置 21 | - range: 3-3 22 | - range: 4-4 23 | host: 24 | regex: 25 | - ^c$ 26 | - ^d$ 27 | id3: 28 | secret: secret3 29 | tcp: 30 | - range: 3-3 31 | - range: 4-4 32 | host: 33 | regex: 34 | - ^c$ 35 | - ^d$ 36 | tcp: 37 | - range: 1-1 38 | - range: 2-2 39 | host: 40 | regex: 41 | - ^a$ 42 | - ^b$ 43 | -------------------------------------------------------------------------------- /libcs/server/testdata/users.yaml: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | id1: 16 | secret: secret1-overwrite 17 | id2: 18 | secret: secret2-overwrite 19 | tcp: # 测试优先级是否高于 config 配置文件 20 | - range: 5-5 21 | - range: 6-6 22 | host: 23 | regex: [ ] # 设置为空而非默认值 24 | id4: 25 | secret: secret4 26 | -------------------------------------------------------------------------------- /libcs/server/web/embed.go: -------------------------------------------------------------------------------- 1 | //go:build release || !nostatic 2 | 3 | package web 4 | 5 | import "embed" 6 | 7 | //go:embed dist/* 8 | var embeddedFS embed.FS 9 | 10 | func init() { 11 | FS = embeddedFS 12 | } 13 | -------------------------------------------------------------------------------- /libcs/util/args.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import ( 4 | "os" 5 | "sync/atomic" 6 | ) 7 | 8 | var ( 9 | NoArgs atomic.Bool 10 | globalArgs atomic.Pointer[[]string] 11 | ) 12 | 13 | func init() { 14 | if len(os.Args) <= 1 { 15 | NoArgs.Store(true) 16 | } 17 | } 18 | 19 | // IsNoArgs 表示是否没有参数, 用于判断是否需要提供更多的默认配置 20 | func IsNoArgs() bool { 21 | return NoArgs.Load() 22 | } 23 | 24 | func Args() []string { 25 | load := globalArgs.Load() 26 | if load != nil { 27 | return *load 28 | } 29 | return os.Args 30 | } 31 | 32 | func SetArgs(args []string) { 33 | if len(args) <= 1 { 34 | NoArgs.Store(true) 35 | } 36 | globalArgs.Store(&args) 37 | } 38 | -------------------------------------------------------------------------------- /libcs/util/blockvalue.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package util 16 | 17 | import ( 18 | "sync/atomic" 19 | ) 20 | 21 | // BlockValue 当 Set 方法没有调用时 Get 方法会一直阻塞 22 | type BlockValue[T any] struct { 23 | v atomic.Pointer[T] 24 | waitSet chan struct{} 25 | initialized atomic.Bool 26 | } 27 | 28 | func NewBlockValue[T any]() BlockValue[T] { 29 | return BlockValue[T]{ 30 | waitSet: make(chan struct{}, 1), 31 | } 32 | } 33 | 34 | func (bv *BlockValue[T]) Get() *T { 35 | if !bv.initialized.Load() { 36 | <-bv.waitSet 37 | } 38 | return bv.v.Load() 39 | } 40 | 41 | func (bv *BlockValue[T]) Set(v *T) { 42 | bv.v.Store(v) 43 | if bv.initialized.Load() { 44 | return 45 | } 46 | bv.initialized.Store(true) 47 | close(bv.waitSet) 48 | } 49 | -------------------------------------------------------------------------------- /libcs/util/rand.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2022 Institute of Software, Chinese Academy of Sciences (ISCAS) 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | package util 16 | 17 | import ( 18 | "math/rand" 19 | "sync" 20 | "time" 21 | ) 22 | 23 | var ( 24 | r *rand.Rand 25 | lock sync.Mutex 26 | ) 27 | 28 | func init() { 29 | r = rand.New(rand.NewSource(time.Now().Unix())) 30 | } 31 | 32 | // RandomString 随机字符串 33 | func RandomString(n int) string { 34 | letters := []byte("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") 35 | 36 | s := make([]byte, n) 37 | lock.Lock() 38 | defer lock.Unlock() 39 | for i := range s { 40 | s[i] = letters[r.Intn(len(letters))] 41 | } 42 | return string(s) 43 | } 44 | 45 | func RandomPort() int { 46 | lock.Lock() 47 | defer lock.Unlock() 48 | return r.Intn(65535-1024) + 1024 49 | } 50 | -------------------------------------------------------------------------------- /libcs/web/front/.editorconfig: -------------------------------------------------------------------------------- 1 | # @see: http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] # Applies to all files 6 | charset = utf-8 # set encoding 7 | end_of_line = lf # control characters at the end of line (lf | crlf | cr) 8 | insert_final_newline = true # insert a new line at the end of file 9 | indent_style = space # set indent style (space | tab) 10 | indent_size = 2 # set indent size 11 | max_line_length = 130 # set max line length 12 | 13 | [*.md] # Applies to all files which extension is md 14 | max_line_length = off # turn off max line length 15 | trim_trailing_whitespace = false # turn off trim trailing whitespace 16 | 17 | -------------------------------------------------------------------------------- /libcs/web/front/.env: -------------------------------------------------------------------------------- 1 | # title 2 | VITE_GLOB_APP_TITLE = GT Admin 3 | 4 | # the port to serve the dev server on 5 | VITE_PORT = 8848 6 | 7 | # auto open browser when dev server is started 8 | VITE_OPEN = true 9 | 10 | # whether to generate package analysis file after packaging 11 | VITE_REPORT = true 12 | -------------------------------------------------------------------------------- /libcs/web/front/.env.development: -------------------------------------------------------------------------------- 1 | # local env 2 | VITE_USER_NODE_ENV = development 3 | 4 | # public path 5 | VITE_PUBLIC_PATH = / 6 | 7 | # whether to drop console when building 8 | VITE_DROP_CONSOLE = flase 9 | 10 | # whether to enable VitePWA 11 | VITE_PWA = false 12 | 13 | # 开发环境接口地址 14 | # API_URL used in development 15 | VITE_API_URL = /api 16 | 17 | # vite proxy, support multiple proxies 18 | VITE_PROXY = [["/api","http://localhost:8000"]] 19 | -------------------------------------------------------------------------------- /libcs/web/front/.env.production: -------------------------------------------------------------------------------- 1 | # environment 2 | VITE_USER_NODE_ENV = production 3 | 4 | # public path 5 | VITE_PUBLIC_PATH = /static/ 6 | 7 | # whether to enable gzip or brotli compression when buildin, if you need multiple compression rules, you can use "," for separatin 8 | # Optional: gzip | brotli | none 9 | VITE_BUILD_COMPRESS = none 10 | 11 | # whether to delete the origin file after compression 12 | VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false 13 | 14 | # whether to drop console when building 15 | VITE_DROP_CONSOLE = true 16 | 17 | # whether to enable source map when building 18 | VITE_SOURCE_MAP = false 19 | 20 | # whether to enable VitePWA 21 | VITE_PWA = false 22 | 23 | # API_URL used in production 24 | VITE_API_URL = /api 25 | -------------------------------------------------------------------------------- /libcs/web/front/.env.test: -------------------------------------------------------------------------------- 1 | # environment 2 | VITE_USER_NODE_ENV = test 3 | 4 | # public path 5 | VITE_PUBLIC_PATH = /static/ 6 | 7 | # whether to enable gzip or brotli compression when buildin, if you need multiple compression rules, you can use "," for separatin 8 | # Optional: gzip | brotli | none 9 | VITE_BUILD_COMPRESS = none 10 | 11 | # whether to delete the origin file after compression 12 | VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false 13 | 14 | # whether to drop console when building 15 | VITE_DROP_CONSOLE = false 16 | 17 | # whether to enable source map when building 18 | VITE_SOURCE_MAP = true 19 | 20 | # whether to enable VitePWA 21 | VITE_PWA = false 22 | 23 | # API_URL used in test 24 | VITE_API_URL = /api 25 | -------------------------------------------------------------------------------- /libcs/web/front/.eslintignore: -------------------------------------------------------------------------------- 1 | *.sh 2 | node_modules 3 | *.md 4 | *.woff 5 | *.ttf 6 | .vscode 7 | .idea 8 | dist 9 | /public 10 | /docs 11 | .husky 12 | .local 13 | /bin 14 | /src/mock/* 15 | stats.html 16 | -------------------------------------------------------------------------------- /libcs/web/front/.prettierignore: -------------------------------------------------------------------------------- 1 | /dist/* 2 | .local 3 | /node_modules/** 4 | 5 | **/*.svg 6 | **/*.sh 7 | 8 | /public/* 9 | stats.html 10 | -------------------------------------------------------------------------------- /libcs/web/front/.stylelintignore: -------------------------------------------------------------------------------- 1 | /dist/* 2 | /public/* 3 | public/* 4 | stats.html 5 | -------------------------------------------------------------------------------- /libcs/web/front/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Halsey 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /libcs/web/front/build/getEnv.ts: -------------------------------------------------------------------------------- 1 | import path from "path"; 2 | 3 | export function isDevFn(mode: string): boolean { 4 | return mode === "development"; 5 | } 6 | 7 | export function isProdFn(mode: string): boolean { 8 | return mode === "production"; 9 | } 10 | 11 | /** 12 | * Whether to generate package preview 13 | */ 14 | export function isReportMode(): boolean { 15 | return process.env.VITE_REPORT === "true"; 16 | } 17 | 18 | // Read all environment variable configuration files to process.env 19 | export function wrapperEnv(envConf: Recordable): ViteEnv { 20 | const ret: any = {}; 21 | 22 | for (const envName of Object.keys(envConf)) { 23 | let realName = envConf[envName].replace(/\\n/g, "\n"); 24 | realName = realName === "true" ? true : realName === "false" ? false : realName; 25 | if (envName === "VITE_PORT") realName = Number(realName); 26 | if (envName === "VITE_PROXY") { 27 | try { 28 | realName = JSON.parse(realName); 29 | } catch (error) {} 30 | } 31 | ret[envName] = realName; 32 | } 33 | return ret; 34 | } 35 | 36 | /** 37 | * Get user root directory 38 | * @param dir file path 39 | */ 40 | export function getRootPath(...dir: string[]) { 41 | return path.resolve(process.cwd(), ...dir); 42 | } 43 | -------------------------------------------------------------------------------- /libcs/web/front/build/proxy.ts: -------------------------------------------------------------------------------- 1 | import type { ProxyOptions } from "vite"; 2 | 3 | type ProxyItem = [string, string]; 4 | 5 | type ProxyList = ProxyItem[]; 6 | 7 | type ProxyTargetList = Record; 8 | 9 | /** 10 | * Create proxy, used to parse the .env.development proxy configuration 11 | * @param list 12 | */ 13 | export function createProxy(list: ProxyList = []) { 14 | const ret: ProxyTargetList = {}; 15 | for (const [prefix, target] of list) { 16 | const httpsRE = /^https:\/\//; 17 | const isHttps = httpsRE.test(target); 18 | 19 | // https://github.com/http-party/node-http-proxy#options 20 | ret[prefix] = { 21 | target: target, 22 | changeOrigin: true, 23 | ws: true, 24 | // rewrite: path => path.replace(new RegExp(`^${prefix}`), ""), 25 | // https is require secure=false 26 | ...(isHttps ? { secure: false } : {}) 27 | }; 28 | } 29 | return ret; 30 | } 31 | -------------------------------------------------------------------------------- /libcs/web/front/lint-staged.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"], 3 | "{!(package)*.json,*.code-snippets,.!(browserslist)*rc}": ["prettier --write--parser json"], 4 | "package.json": ["prettier --write"], 5 | "*.vue": ["eslint --fix", "prettier --write", "stylelint --fix"], 6 | "*.{scss,less,styl,html}": ["stylelint --fix", "prettier --write"], 7 | "*.md": ["prettier --write"] 8 | }; 9 | -------------------------------------------------------------------------------- /libcs/web/front/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /libcs/web/front/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/public/logo.png -------------------------------------------------------------------------------- /libcs/web/front/public/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libcs/web/front/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 24 | -------------------------------------------------------------------------------- /libcs/web/front/src/api/modules/clientConfig.ts: -------------------------------------------------------------------------------- 1 | import http from "@/api"; 2 | import { Config } from "@/api/interface/index"; 3 | import { ClientConfig, ClientConfigBackend, transToBackendConfig } from "@/components/ClientConfigForm/interface"; 4 | 5 | export const getClientConfigFromFileApi = () => { 6 | return http.get(`/config/file`); 7 | }; 8 | 9 | export const saveClientConfigApi = (data: ClientConfig.Config) => { 10 | return http.post(`/config/save`, transToBackendConfig(data)); 11 | }; 12 | -------------------------------------------------------------------------------- /libcs/web/front/src/api/modules/connection.ts: -------------------------------------------------------------------------------- 1 | import http from "@/api"; 2 | import { Connection } from "@/api/interface/index"; 3 | 4 | export const getConnectionApi = () => { 5 | return http.get(`/connection/list`); 6 | }; 7 | -------------------------------------------------------------------------------- /libcs/web/front/src/api/modules/server.ts: -------------------------------------------------------------------------------- 1 | import http from "@/api"; 2 | import { Server } from "@/api/interface/index"; 3 | 4 | export const getServerInfoApi = () => { 5 | return http.get(`/server/info`, {}, { noLoading: true }); 6 | }; 7 | 8 | // currently use for gt-client to control Server's behavior 9 | export const reloadServicesApi = () => { 10 | return http.put(`/server/reload`); 11 | }; 12 | 13 | export const restartServerApi = () => { 14 | return http.put(`/server/restart`); 15 | }; 16 | 17 | export const stopServerApi = () => { 18 | return http.put(`/server/stop`); 19 | }; 20 | 21 | export const killServerApi = () => { 22 | return http.put(`/server/kill`); 23 | }; 24 | -------------------------------------------------------------------------------- /libcs/web/front/src/api/modules/serverConfig.ts: -------------------------------------------------------------------------------- 1 | import http from "@/api"; 2 | import { Config } from "@/api/interface"; 3 | import { ServerConfig } from "@/components/ServerConfigForm/interface"; 4 | 5 | export const getServerConfigFromFileApi = () => { 6 | return http.get(`/config/file`); 7 | }; 8 | 9 | export const saveServerConfigApi = (data: ServerConfig.Config) => { 10 | return http.post(`/config/save`, data); 11 | }; 12 | -------------------------------------------------------------------------------- /libcs/web/front/src/api/modules/userInfo.ts: -------------------------------------------------------------------------------- 1 | import { Register } from "@/api/interface/index"; 2 | import http from "@/api"; 3 | 4 | export const changeInfoApi = (params: Register.ReqRegisterForm) => { 5 | return http.post(`/user/change`, params); 6 | }; 7 | 8 | export const getInfoApi = () => { 9 | return http.get(`/user/info`); 10 | }; 11 | -------------------------------------------------------------------------------- /libcs/web/front/src/assets/fonts/MetroDF.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/fonts/MetroDF.ttf -------------------------------------------------------------------------------- /libcs/web/front/src/assets/fonts/font.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: MetroDF; 3 | src: url("./MetroDF.ttf"); 4 | } 5 | -------------------------------------------------------------------------------- /libcs/web/front/src/assets/iconfont/iconfont.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: iconfont; /* Project id 2667653 */ 3 | src: url("iconfont.ttf?t=1663324025864") format("truetype"); 4 | } 5 | .iconfont { 6 | font-family: iconfont !important; 7 | font-size: 20px; 8 | font-style: normal; 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | cursor: pointer; 12 | } 13 | .icon-xiaoxi::before { 14 | font-size: 21.2px; 15 | content: "\e61f"; 16 | } 17 | .icon-zhuti::before { 18 | font-size: 22.4px; 19 | content: "\e638"; 20 | } 21 | .icon-sousuo::before { 22 | content: "\e611"; 23 | } 24 | .icon-contentright::before { 25 | content: "\e8c9"; 26 | } 27 | .icon-contentleft::before { 28 | content: "\e8ca"; 29 | } 30 | .icon-fangda::before { 31 | content: "\e826"; 32 | } 33 | .icon-suoxiao::before { 34 | content: "\e641"; 35 | } 36 | .icon-zhongyingwen::before { 37 | content: "\e8cb"; 38 | } 39 | -------------------------------------------------------------------------------- /libcs/web/front/src/assets/iconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/iconfont/iconfont.ttf -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/403.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/403.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/404.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/500.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/login_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/login_left.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/login_left1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/login_left1.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/login_left2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/login_left2.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/login_left3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/login_left3.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/login_left4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/login_left4.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/login_left5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/login_left5.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/logo_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/logo_m.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/logo_m_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/logo_m_en.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/logo_pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/logo_pc.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/logo_pc_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/logo_pc_en.png -------------------------------------------------------------------------------- /libcs/web/front/src/assets/images/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ao-space/gt/bd6a36f72ee3fedc348ab304485d43fe23258866/libcs/web/front/src/assets/images/welcome.png -------------------------------------------------------------------------------- /libcs/web/front/src/components/ClientConfigForm/index.scss: -------------------------------------------------------------------------------- 1 | .el-form-item { 2 | display: contents; // To reduce interference from the form style, only its validation function needs to be used. 3 | } 4 | .setting_class{ 5 | font-size: 50px; 6 | margin-bottom: 30px; 7 | margin-top: 20px; 8 | } 9 | .remote_des{ 10 | display: flex; 11 | } 12 | .remote_select{ 13 | width: 100px; 14 | margin-right: 20px; 15 | } 16 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/ErrorMessage/403.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/ErrorMessage/404.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/ErrorMessage/500.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/ErrorMessage/index.scss: -------------------------------------------------------------------------------- 1 | .not-container { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | width: 100%; 6 | height: 100%; 7 | .not-img { 8 | margin-right: 120px; 9 | } 10 | .not-detail { 11 | display: flex; 12 | flex-direction: column; 13 | h2, 14 | h4 { 15 | padding: 0; 16 | margin: 0; 17 | } 18 | h2 { 19 | font-size: 60px; 20 | color: var(--el-text-color-primary); 21 | } 22 | h4 { 23 | margin: 30px 0 20px; 24 | font-size: 19px; 25 | font-weight: normal; 26 | color: var(--el-text-color-regular); 27 | } 28 | .el-button { 29 | width: 100px; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/Loading/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/ServerConfigForm/index.scss: -------------------------------------------------------------------------------- 1 | .el-form-item { 2 | display: contents; // To reduce interference from the form style, only its validation function needs to be used. 3 | } 4 | :deep(.el-divider__text.is-left) { 5 | font-size: 20px; 6 | font-weight: 600; 7 | } 8 | .setting_class{ 9 | font-size: 50px; 10 | margin-bottom: 30px; 11 | margin-top: 20px; 12 | } 13 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/SwitchDark/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 13 | -------------------------------------------------------------------------------- /libcs/web/front/src/components/UsageTooltip/index.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /libcs/web/front/src/config/index.ts: -------------------------------------------------------------------------------- 1 | // Global default configuration item 2 | 3 | // Home page address (default) 4 | export const HOME_URL: string = "/home/index"; 5 | 6 | // Login page address (default) 7 | export const LOGIN_URL: string = "/login"; 8 | 9 | // Default theme color 10 | export const DEFAULT_PRIMARY: string = "#1890FF"; 11 | 12 | // Router white list address (must be a local existing route staticRouter.ts) 13 | export const ROUTER_WHITE_LIST: string[] = ["/500", "/404", "/403", "/verify"]; 14 | -------------------------------------------------------------------------------- /libcs/web/front/src/config/nprogress.ts: -------------------------------------------------------------------------------- 1 | import NProgress from "nprogress"; 2 | import "nprogress/nprogress.css"; 3 | 4 | NProgress.configure({ 5 | easing: "ease", // Animation easing style 6 | speed: 500, // Speed at which the progress bar increases 7 | showSpinner: true, // Determines whether to display the loading spinner icon 8 | trickleSpeed: 200, // Interval for auto-incrementing the progress 9 | minimum: 0.3 // Minimum percentage when initialized 10 | }); 11 | 12 | export default NProgress; 13 | -------------------------------------------------------------------------------- /libcs/web/front/src/config/piniaPersist.ts: -------------------------------------------------------------------------------- 1 | import { PersistedStateOptions } from "pinia-plugin-persistedstate"; 2 | 3 | /** 4 | * @description Configuration parameters for Pinia persistence 5 | * @param {String} key The name to be stored in persistence 6 | * @param {Storage} storage The storage method used, such as: localStorage, sessionStorage, etc. 7 | * @param {Array} paths The state names that need to be persisted 8 | * @return persist 9 | * */ 10 | const piniaPersistConfig = (key: string, storage: Storage, paths?: string[]) => { 11 | const persist: PersistedStateOptions = { 12 | key, 13 | storage, 14 | paths 15 | }; 16 | return persist; 17 | }; 18 | 19 | export default piniaPersistConfig; 20 | -------------------------------------------------------------------------------- /libcs/web/front/src/config/serviceLoading.ts: -------------------------------------------------------------------------------- 1 | import { ElLoading } from "element-plus"; 2 | 3 | /* 全局请求 loading */ 4 | let loadingInstance: ReturnType; 5 | 6 | /** 7 | * @description Start Loading 8 | * */ 9 | const startLoading = () => { 10 | loadingInstance = ElLoading.service({ 11 | fullscreen: true, 12 | lock: true, 13 | text: "Loading", 14 | background: "rgba(0, 0, 0, 0.7)" 15 | }); 16 | }; 17 | 18 | /** 19 | * @description End the Loading 20 | * */ 21 | const endLoading = () => { 22 | loadingInstance.close(); 23 | }; 24 | 25 | /** 26 | * @description Display full-screen loading 27 | * */ 28 | let needLoadingRequestCount = 0; 29 | export const showFullScreenLoading = () => { 30 | if (needLoadingRequestCount === 0) { 31 | startLoading(); 32 | } 33 | needLoadingRequestCount++; 34 | }; 35 | 36 | /** 37 | * @description Hide full-screen loading 38 | * */ 39 | export const tryHideFullScreenLoading = () => { 40 | if (needLoadingRequestCount <= 0) return; 41 | needLoadingRequestCount--; 42 | if (needLoadingRequestCount === 0) { 43 | endLoading(); 44 | } 45 | }; 46 | -------------------------------------------------------------------------------- /libcs/web/front/src/enums/httpEnum.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @description:Request configuration 3 | */ 4 | export enum ResultEnum { 5 | SUCCESS = 200, 6 | ERROR = 500, 7 | OVERDUE = 401, 8 | TIMEOUT = 30000, 9 | TYPE = "success" 10 | } 11 | 12 | /** 13 | * @description:HTTP request methods 14 | */ 15 | export enum RequestEnum { 16 | GET = "GET", 17 | POST = "POST", 18 | PATCH = "PATCH", 19 | PUT = "PUT", 20 | DELETE = "DELETE" 21 | } 22 | 23 | /** 24 | * @description:Commonly used content type values 25 | */ 26 | export enum ContentTypeEnum { 27 | // json 28 | JSON = "application/json;charset=UTF-8", 29 | // text 30 | TEXT = "text/plain;charset=UTF-8", 31 | // form-data 32 | FORM_URLENCODED = "application/x-www-form-urlencoded;charset=UTF-8", 33 | // form-data upload 34 | FORM_DATA = "multipart/form-data;charset=UTF-8" 35 | } 36 | -------------------------------------------------------------------------------- /libcs/web/front/src/hooks/interface/index.ts: -------------------------------------------------------------------------------- 1 | export namespace Theme { 2 | export type ThemeType = "light" | "inverted" | "dark"; 3 | export type GreyOrWeakType = "grey" | "weak"; 4 | } 5 | -------------------------------------------------------------------------------- /libcs/web/front/src/languages/index.ts: -------------------------------------------------------------------------------- 1 | // index.ts 2 | import { createI18n } from "vue-i18n"; 3 | import { zh } from "./lang/zh"; 4 | import { en } from "./lang/en"; 5 | 6 | const messages = { 7 | zh, 8 | en 9 | }; 10 | const language = (navigator.language || "en").toLocaleLowerCase(); 11 | const i18n = createI18n({ 12 | locale: localStorage.getItem("lang") || language.split("-")[0] || "en", 13 | fallbackLocale: "en", // 设置备用语言 14 | messages 15 | }); 16 | 17 | export default i18n; 18 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Footer/index.scss: -------------------------------------------------------------------------------- 1 | .footer { 2 | height: 30px; 3 | background-color: var(--el-bg-color); 4 | border-top: 1px solid var(--el-border-color-light); 5 | a { 6 | font-size: 14px; 7 | color: var(--el-text-color-secondary); 8 | text-decoration: none; 9 | letter-spacing: 0.5px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Footer/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/ToolBarLeft.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 14 | 15 | 24 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/ToolBarRight.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 24 | 25 | 43 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/components/AssemblySize.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 39 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/components/CollapseIcon.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 22 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/components/Fullscreen.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 26 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/components/InfoDialog.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 25 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/components/LanguageSelector.vue: -------------------------------------------------------------------------------- 1 | 6 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Header/components/ThemeSetting.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Main/components/Maximize.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 15 | 16 | 41 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/components/Main/index.scss: -------------------------------------------------------------------------------- 1 | .el-main { 2 | box-sizing: border-box; 3 | padding: 10px 12px; 4 | overflow-x: hidden; 5 | background-color: var(--el-bg-color-page); 6 | } 7 | .el-footer { 8 | height: auto; 9 | padding: 0; 10 | } 11 | -------------------------------------------------------------------------------- /libcs/web/front/src/layouts/index.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 20 | 21 | 26 | -------------------------------------------------------------------------------- /libcs/web/front/src/stores/index.ts: -------------------------------------------------------------------------------- 1 | import { createPinia } from "pinia"; 2 | import piniaPluginPersistedstate from "pinia-plugin-persistedstate"; 3 | 4 | // pinia persist 5 | const pinia = createPinia(); 6 | pinia.use(piniaPluginPersistedstate); 7 | 8 | export default pinia; 9 | -------------------------------------------------------------------------------- /libcs/web/front/src/stores/interface/index.ts: -------------------------------------------------------------------------------- 1 | export type LayoutType = "classic"; 2 | 3 | export type AssemblySizeType = "large" | "default" | "small"; 4 | 5 | export type LanguageType = "zh" | "en" | null; 6 | 7 | /* GlobalState */ 8 | export interface GlobalState { 9 | layout: LayoutType; 10 | assemblySize: AssemblySizeType; 11 | maximize: boolean; 12 | primary: string; 13 | isDark: boolean; 14 | isGrey: boolean; 15 | isWeak: boolean; 16 | asideInverted: boolean; 17 | isCollapse: boolean; 18 | breadcrumb: boolean; 19 | breadcrumbIcon: boolean; 20 | tabs: boolean; 21 | tabsIcon: boolean; 22 | footer: boolean; 23 | } 24 | 25 | /* UserState */ 26 | export interface UserState { 27 | token: string; 28 | userInfo: { name: string }; 29 | } 30 | 31 | /* tabsMenuProps */ 32 | export interface TabsMenuProps { 33 | icon: string; 34 | title: string; 35 | path: string; 36 | name: string; 37 | close: boolean; 38 | } 39 | 40 | /* TabsState */ 41 | export interface TabsState { 42 | tabsMenuList: TabsMenuProps[]; 43 | } 44 | 45 | /* AuthState */ 46 | export interface AuthState { 47 | authMenuList: Menu.MenuOptions[]; 48 | } 49 | 50 | /* KeepAliveState */ 51 | export interface KeepAliveState { 52 | keepAliveName: string[]; 53 | } 54 | -------------------------------------------------------------------------------- /libcs/web/front/src/stores/modules/auth.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from "pinia"; 2 | import { AuthState } from "@/stores/interface"; 3 | import { getAuthMenuListApi } from "@/api/modules/login"; 4 | import { getFlatMenuList, getShowMenuList, getAllBreadcrumbList } from "@/utils"; 5 | 6 | export const useAuthStore = defineStore({ 7 | id: "GT-auth", 8 | state: (): AuthState => ({ 9 | // Menu permission list 10 | authMenuList: [] 11 | }), 12 | getters: { 13 | // Menu permission list ==> The menu here has not been processed 14 | authMenuListGet: state => state.authMenuList, 15 | // Menu permission list ==> Left menu bar rendering, you need to remove isHide == true 16 | showMenuListGet: state => getShowMenuList(state.authMenuList), 17 | // Menu permission list ==> One-dimensional array menu after flattening, mainly used to add dynamic routes 18 | flatMenuListGet: state => getFlatMenuList(state.authMenuList), 19 | // Menu permission list ==> All breadcrumb navigation lists after recursive processing 20 | breadcrumbListGet: state => getAllBreadcrumbList(state.authMenuList) 21 | }, 22 | actions: { 23 | // Get AuthMenuList 24 | async getAuthMenuList() { 25 | const { data } = await getAuthMenuListApi(); 26 | this.authMenuList = data; 27 | } 28 | } 29 | }); 30 | -------------------------------------------------------------------------------- /libcs/web/front/src/stores/modules/keepAlive.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from "pinia"; 2 | import { KeepAliveState } from "@/stores/interface"; 3 | 4 | export const useKeepAliveStore = defineStore({ 5 | id: "GT-keepAlive", 6 | state: (): KeepAliveState => ({ 7 | keepAliveName: [] 8 | }), 9 | actions: { 10 | // Add KeepAliveName 11 | async addKeepAliveName(name: string) { 12 | !this.keepAliveName.includes(name) && this.keepAliveName.push(name); 13 | }, 14 | // Remove KeepAliveName 15 | async removeKeepAliveName(name: string) { 16 | this.keepAliveName = this.keepAliveName.filter(item => item !== name); 17 | }, 18 | // Set KeepAliveName 19 | async setKeepAliveName(keepAliveName: string[] = []) { 20 | this.keepAliveName = keepAliveName; 21 | } 22 | } 23 | }); 24 | -------------------------------------------------------------------------------- /libcs/web/front/src/stores/modules/user.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from "pinia"; 2 | import { UserState } from "@/stores/interface"; 3 | import piniaPersistConfig from "@/config/piniaPersist"; 4 | 5 | export const useUserStore = defineStore({ 6 | id: "GT-Admin", 7 | state: (): UserState => ({ 8 | token: "", 9 | userInfo: { name: "GT-Admin" } 10 | }), 11 | getters: {}, 12 | actions: { 13 | // Set Token 14 | setToken(token: string) { 15 | this.token = token; 16 | }, 17 | // Set setUserInfo 18 | setUserInfo(userInfo: UserState["userInfo"]) { 19 | this.userInfo = userInfo; 20 | } 21 | }, 22 | persist: piniaPersistConfig("GT-user", sessionStorage, ["token"]) 23 | }); 24 | -------------------------------------------------------------------------------- /libcs/web/front/src/styles/element-dark.scss: -------------------------------------------------------------------------------- 1 | /* define element-ui dark theme */ 2 | html.dark { 3 | /* login */ 4 | .login-container { 5 | background-color: #191919 !important; 6 | .login-box { 7 | background-color: rgb(0 0 0 / 80%) !important; 8 | .login-form { 9 | box-shadow: rgb(255 255 255 / 12%) 0 2px 10px 2px !important; 10 | .logo-text { 11 | color: var(--el-text-color-primary) !important; 12 | } 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libcs/web/front/src/styles/reset.scss: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #app { 4 | width: 100%; 5 | height: 100%; 6 | padding: 0; 7 | margin: 0; 8 | } 9 | 10 | /* solve the problem that the font size of h1 tag is invalid in webkit kernel browser */ 11 | :-webkit-any(article, aside, nav, section) h1 { 12 | font-size: 2em; 13 | } 14 | -------------------------------------------------------------------------------- /libcs/web/front/src/styles/theme/aside.ts: -------------------------------------------------------------------------------- 1 | import { Theme } from "@/hooks/interface"; 2 | 3 | export const asideTheme: Record = { 4 | light: { 5 | "--el-aside-logo-text-color": "#303133", 6 | "--el-aside-border-color": "#e4e7ed" 7 | }, 8 | inverted: { 9 | "--el-aside-logo-text-color": "#dadada", 10 | "--el-aside-border-color": "#414243" 11 | }, 12 | dark: { 13 | "--el-aside-logo-text-color": "#dadada", 14 | "--el-aside-border-color": "#414243" 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /libcs/web/front/src/styles/theme/header.ts: -------------------------------------------------------------------------------- 1 | import { Theme } from "@/hooks/interface"; 2 | 3 | export const headerTheme: Record = { 4 | light: { 5 | "--el-header-logo-text-color": "#dadada", 6 | "--el-header-bg-color": "#191a20", 7 | "--el-header-text-color": "#e5eaf3", 8 | "--el-header-text-color-regular": "#cfd3dc", 9 | "--el-header-border-color": "#414243" 10 | }, 11 | inverted: { 12 | "--el-header-logo-text-color": "#dadada", 13 | "--el-header-bg-color": "#191a20", 14 | "--el-header-text-color": "#e5eaf3", 15 | "--el-header-text-color-regular": "#cfd3dc", 16 | "--el-header-border-color": "#414243" 17 | }, 18 | dark: { 19 | "--el-header-logo-text-color": "#dadada", 20 | "--el-header-bg-color": "#141414", 21 | "--el-header-text-color": "#e5eaf3", 22 | "--el-header-text-color-regular": "#cfd3dc", 23 | "--el-header-border-color": "#414243" 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /libcs/web/front/src/styles/theme/menu.ts: -------------------------------------------------------------------------------- 1 | import { Theme } from "@/hooks/interface"; 2 | 3 | export const menuTheme: Record = { 4 | light: { 5 | "--el-menu-bg-color": "#ffffff", 6 | "--el-menu-hover-bg-color": "#cccccc", 7 | "--el-menu-active-bg-color": "var(--el-color-primary-light-9)", 8 | "--el-menu-text-color": "#333333", 9 | "--el-menu-active-color": "var(--el-color-primary)", 10 | "--el-menu-hover-text-color": "#333333", 11 | "--el-menu-horizontal-sub-item-height": "50px" 12 | }, 13 | inverted: { 14 | "--el-menu-bg-color": "#191a20", 15 | "--el-menu-hover-bg-color": "#000000", 16 | "--el-menu-active-bg-color": "#000000", 17 | "--el-menu-text-color": "#bdbdc0", 18 | "--el-menu-active-color": "#ffffff", 19 | "--el-menu-hover-text-color": "#ffffff", 20 | "--el-menu-horizontal-sub-item-height": "50px" 21 | }, 22 | dark: { 23 | "--el-menu-bg-color": "#141414", 24 | "--el-menu-hover-bg-color": "#000000", 25 | "--el-menu-active-bg-color": "#000000", 26 | "--el-menu-text-color": "#bdbdc0", 27 | "--el-menu-active-color": "#ffffff", 28 | "--el-menu-hover-text-color": "#ffffff", 29 | "--el-menu-horizontal-sub-item-height": "50px" 30 | } 31 | }; 32 | -------------------------------------------------------------------------------- /libcs/web/front/src/styles/var.scss: -------------------------------------------------------------------------------- 1 | /* global css variable */ 2 | $primary-color: var(--el-color-primary); 3 | -------------------------------------------------------------------------------- /libcs/web/front/src/typings/window.d.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | interface Navigator { 3 | msSaveOrOpenBlob: (blob: Blob, fileName: string) => void; 4 | browserLanguage: string; 5 | } 6 | } 7 | 8 | export {}; 9 | -------------------------------------------------------------------------------- /libcs/web/front/src/utils/errorHandler.ts: -------------------------------------------------------------------------------- 1 | import { ElNotification } from "element-plus"; 2 | 3 | /** 4 | * @description Global error handler 5 | * */ 6 | const errorHandler = (error: any) => { 7 | // Filter out HTTP request errors 8 | if (error.status || error.status === 0) return false; 9 | let errorMap: { [key: string]: string } = { 10 | InternalError: "Internal error in the JavaScript engine", 11 | ReferenceError: "Object not found", 12 | TypeError: "Incorrect type or object used", 13 | RangeError: "Parameter out of range when using a built-in object", 14 | SyntaxError: "Syntax error", 15 | EvalError: "Incorrect use of Eval", 16 | URIError: "URI error" 17 | }; 18 | let errorName = errorMap[error.name] || "Unknown error"; 19 | ElNotification({ 20 | title: errorName, 21 | message: error, 22 | type: "error", 23 | duration: 3000 24 | }); 25 | }; 26 | 27 | export default errorHandler; 28 | -------------------------------------------------------------------------------- /libcs/web/front/src/utils/mittBus.ts: -------------------------------------------------------------------------------- 1 | import mitt from "mitt"; 2 | 3 | const mittBus = mitt(); 4 | 5 | export default mittBus; 6 | -------------------------------------------------------------------------------- /libcs/web/front/src/utils/svg.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @description Loading Svg 3 | */ 4 | export const loadingSvg = ` 5 | 13 | `; 14 | -------------------------------------------------------------------------------- /libcs/web/front/src/views/config/ClientConfig/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /libcs/web/front/src/views/config/ServerConfig/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /libcs/web/front/src/views/connection/index.scss: -------------------------------------------------------------------------------- 1 | .echarts { 2 | width: 100%; 3 | height: 400px; 4 | } 5 | .card_header { 6 | padding-left: 5px; 7 | font-size: x-large; 8 | font-weight: bold; 9 | border-left: 5px solid #1890ff; 10 | } 11 | :deep(.el-card__body) { 12 | font-family: Cambria, Cochin, Georgia, Times, "Times New Roman", serif; 13 | } 14 | .el-card { 15 | width: 100%; 16 | } 17 | .el-row { 18 | margin-bottom: 20px; 19 | } 20 | .el-row:last-child { 21 | margin-bottom: 0; 22 | } 23 | -------------------------------------------------------------------------------- /libcs/web/front/src/views/home/index.scss: -------------------------------------------------------------------------------- 1 | .home { 2 | width: 100%; 3 | height: 100%; 4 | .home-bg { 5 | width: 100%; 6 | max-width: 1200px; 7 | margin-bottom: 20px; 8 | } 9 | } 10 | .card_item { 11 | height: 305px; 12 | } 13 | .el-row { 14 | margin-bottom: 20px; 15 | } 16 | .el-row:last-child { 17 | margin-bottom: 0; 18 | } 19 | :deep(.el-col) { 20 | width: 100%; 21 | border-radius: 4px; 22 | } 23 | .percentage-value { 24 | display: block; 25 | margin-top: 10px; 26 | font-size: 30px; 27 | } 28 | .percentage-label { 29 | display: block; 30 | margin-top: 10px; 31 | font-size: 15px; 32 | font-weight: bold; 33 | } 34 | .card_header { 35 | padding-left: 5px; 36 | font-size: x-large; 37 | font-weight: bold; 38 | border-left: 5px solid #1890ff; 39 | } 40 | :deep(.el-card__body) { 41 | font-family: Cambria, Cochin, Georgia, Times, "Times New Roman", serif; 42 | } 43 | -------------------------------------------------------------------------------- /libcs/web/front/src/views/login/index.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 22 | 23 | 26 | -------------------------------------------------------------------------------- /libcs/web/front/src/views/pprof/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /libcs/web/front/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /libcs/web/server/middleware/jwt.go: -------------------------------------------------------------------------------- 1 | package middleware 2 | 3 | import ( 4 | "github.com/gin-gonic/gin" 5 | "github.com/isrc-cas/gt/web/server/model/response" 6 | "github.com/isrc-cas/gt/web/server/util" 7 | "time" 8 | ) 9 | 10 | func JWTAuthMiddleware(signingKey string, tokenDuration time.Duration) gin.HandlerFunc { 11 | return func(c *gin.Context) { 12 | token := c.GetHeader("x-token") 13 | if token == "" { 14 | response.InvalidToken(c) 15 | c.Abort() 16 | return 17 | } 18 | j := util.NewJWT(signingKey, tokenDuration) 19 | claims, err := j.ParseToken(token) 20 | if err != nil { 21 | response.InvalidToken(c) 22 | c.Abort() 23 | return 24 | } 25 | c.Set("claims", claims) 26 | c.Next() 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /libcs/web/server/model/request/connection.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | import "github.com/shirou/gopsutil/v3/net" 4 | 5 | // SimplifiedConnection is a simplified version of gopsutil ConnectionStat 6 | type SimplifiedConnection struct { 7 | Family uint32 `json:"family"` 8 | Type uint32 `json:"type"` 9 | Laddr net.Addr `json:"localaddr"` 10 | Raddr net.Addr `json:"remoteaddr"` 11 | Status string `json:"status"` 12 | } 13 | 14 | // SimplifiedConnectionWithID mainly used for web server to identify pool connection 15 | type SimplifiedConnectionWithID struct { 16 | ID string `json:"id"` 17 | Family uint32 `json:"family"` 18 | Type uint32 `json:"type"` 19 | Laddr net.Addr `json:"localaddr"` 20 | Raddr net.Addr `json:"remoteaddr"` 21 | Status string `json:"status"` 22 | } 23 | -------------------------------------------------------------------------------- /libcs/web/server/model/request/permission.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | // Menu represents a menu item. 4 | type Menu struct { 5 | Path string `json:"path"` 6 | Name string `json:"name"` 7 | Component string `json:"component"` 8 | Redirect string `json:"redirect,omitempty"` 9 | Meta MetaProps `json:"meta"` 10 | Children []Menu `json:"children,omitempty"` 11 | } 12 | 13 | // MetaProps represents the meta properties of a menu item. 14 | type MetaProps struct { 15 | Icon string `json:"icon"` //element-plus icon name 16 | Title string `json:"title"` //menu item title 17 | IsLink string `json:"isLink"` //if isLink is not empty, the menu item will be a link to the given url 18 | IsHide bool `json:"isHide"` //if isHide is true, the menu item will be hidden 19 | IsFull bool `json:"isFull"` //if isFull is true, the menu item will be displayed in full screen 20 | IsAffix bool `json:"isAffix"` //if isAffix is true, the menu item cannot be closed on the tab line 21 | IsKeepAlive bool `json:"isKeepAlive"` //if isKeepAlive is true, the menu item will be cached 22 | } 23 | -------------------------------------------------------------------------------- /libcs/web/server/model/request/system.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | type Server struct { 4 | Os Os `json:"os"` 5 | Cpu Cpu `json:"cpu"` 6 | Ram Ram `json:"ram"` 7 | Disk Disk `json:"disk"` 8 | } 9 | 10 | type Os struct { 11 | GOOS string `json:"goos"` 12 | NumCPU int `json:"numCpu"` 13 | Compiler string `json:"compiler"` 14 | GoVersion string `json:"goVersion"` 15 | NumGoroutine int `json:"numGoroutine"` 16 | } 17 | 18 | type Cpu struct { 19 | Cpus []float64 `json:"cpus"` 20 | Cores int `json:"cores"` 21 | } 22 | 23 | type Ram struct { 24 | UsedMB int `json:"usedMb"` 25 | TotalMB int `json:"totalMb"` 26 | UsedPercent int `json:"usedPercent"` 27 | } 28 | 29 | type Disk struct { 30 | UsedMB int `json:"usedMb"` 31 | UsedGB int `json:"usedGb"` 32 | TotalMB int `json:"totalMb"` 33 | TotalGB int `json:"totalGb"` 34 | UsedPercent int `json:"usedPercent"` 35 | } 36 | -------------------------------------------------------------------------------- /libcs/web/server/model/request/user.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | type User struct { 4 | Username string `json:"username" binding:"required"` 5 | Password string `json:"password" binding:"required"` 6 | } 7 | 8 | type UserInfo struct { 9 | Username string `json:"username" binding:"required"` 10 | Password string `json:"password" binding:"required"` 11 | EnablePprof bool `json:"enablePprof"` 12 | } 13 | --------------------------------------------------------------------------------