From e33cc5480e44aa081bf500a745358684f6fdb311 Mon Sep 17 00:00:00 2001 From: gh-actions Date: Mon, 4 Mar 2024 12:12:42 +0000 Subject: [PATCH] Deploy website - based on 82abe426155f68b2d995e5d2301b34dfc640751c --- 0480b142.4d2ec9ef.js | 1 + 0480b142.f1cd529b.js | 1 - 404.html | 4 ++-- blog/announcing-gnet-v1-cn/index.html | 4 ++-- blog/announcing-gnet-v1/index.html | 4 ++-- blog/announcing-gnet-v2-3-0/index.html | 4 ++-- blog/announcing-gnet-v2/index.html | 4 ++-- blog/index.html | 4 ++-- blog/tags/domain-presentation/index.html | 4 ++-- "blog/tags/domain-\345\261\225\347\244\272/index.html" | 4 ++-- blog/tags/index.html | 4 ++-- blog/tags/type-announcement/index.html | 4 ++-- "blog/tags/type-\345\256\230\345\256\243/index.html" | 4 ++-- community/index.html | 4 ++-- contact/index.html | 4 ++-- docs/about/overview-cn/index.html | 4 ++-- docs/about/overview/index.html | 4 ++-- docs/benchmark/index.html | 4 ++-- docs/faq/index.html | 10 +++++----- docs/index.html | 4 ++-- docs/quickstart/index.html | 4 ++-- docs/tutorial/best-practices/index.html | 4 ++-- docs/v1.x/doc-for-gnet-v1-cn/index.html | 4 ++-- docs/v1.x/doc-for-gnet-v1/index.html | 4 ++-- .../2019-11-07-supported-multiple-codecs/index.html | 4 ++-- highlights/2019-11-12-supported-windows/index.html | 4 ++-- .../2020-03-13-released-first-version/index.html | 4 ++-- .../index.html | 4 ++-- highlights/2020-04-03-released-1-1-0/index.html | 4 ++-- highlights/2020-05-11-released-1-2-0/index.html | 4 ++-- highlights/2020-07-02-raw-syscalls-sockets/index.html | 4 ++-- highlights/2020-09-13-released-1-3-0/index.html | 4 ++-- .../2020-09-13-supported-locking-os-thread/index.html | 4 ++-- highlights/2021-02-17-released-1-4-0/index.html | 4 ++-- highlights/2021-07-11-released-1-5-0/index.html | 4 ++-- highlights/2021-07-20-released-1-5-2/index.html | 4 ++-- highlights/2021-12-05-released-1-6-0/index.html | 4 ++-- highlights/2022-02-27-release-of-gnet-v2/index.html | 4 ++-- .../index.html | 4 ++-- .../index.html | 4 ++-- highlights/index.html | 4 ++-- highlights/tags/domain-load-balancing/index.html | 4 ++-- highlights/tags/domain-os/index.html | 4 ++-- highlights/tags/domain-socket/index.html | 4 ++-- highlights/tags/domain-thread/index.html | 4 ++-- highlights/tags/domain-v-1-0-0/index.html | 4 ++-- highlights/tags/domain-v-1-1-0/index.html | 4 ++-- highlights/tags/domain-v-1-2-0/index.html | 4 ++-- highlights/tags/domain-v-1-3-0/index.html | 4 ++-- highlights/tags/domain-v-1-4-0/index.html | 4 ++-- highlights/tags/domain-v-1-5-0/index.html | 4 ++-- highlights/tags/domain-v-1-5-2/index.html | 4 ++-- highlights/tags/domain-v-1-6-0/index.html | 4 ++-- highlights/tags/domain-v-2-0-0/index.html | 4 ++-- highlights/tags/domain-v-2-3-0-rc-1/index.html | 4 ++-- highlights/tags/domain-v-2-3-0-rc-2/index.html | 4 ++-- highlights/tags/index.html | 4 ++-- highlights/tags/platform-arm-64/index.html | 4 ++-- highlights/tags/platform-windows/index.html | 4 ++-- highlights/tags/type-new-feature/index.html | 4 ++-- highlights/tags/type-optimization/index.html | 4 ++-- highlights/tags/type-release/index.html | 4 ++-- highlights/tags/type-tag/index.html | 4 ++-- index.html | 4 ++-- runtime~main.4596f54b.js => runtime~main.6e50deb3.js | 2 +- 65 files changed, 129 insertions(+), 129 deletions(-) create mode 100644 0480b142.4d2ec9ef.js delete mode 100644 0480b142.f1cd529b.js rename runtime~main.4596f54b.js => runtime~main.6e50deb3.js (99%) diff --git a/0480b142.4d2ec9ef.js b/0480b142.4d2ec9ef.js new file mode 100644 index 000000000..ed68986dc --- /dev/null +++ b/0480b142.4d2ec9ef.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{147:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return r})),n.d(t,"metadata",(function(){return c})),n.d(t,"rightToc",(function(){return s})),n.d(t,"default",(function(){return p}));var o=n(1),i=n(9),a=(n(0),n(246)),r={last_modified_on:"2024-03-04",id:"faq",title:"FAQ",description:"Frequently asked questions about gnet."},c={id:"faq",title:"FAQ",description:"Frequently asked questions about gnet.",source:"@site/docs/faq.md",permalink:"/docs/faq",editUrl:"https://github.com/panjf2000/gnet/edit/master/website/docs/faq.md",sidebar:"docs",previous:{title:"gnet v1 \u6587\u6863",permalink:"/docs/v1.x/doc-for-gnet-v1-cn"}},s=[{value:"Architecture & Code & Principles",id:"architecture--code--principles",children:[{value:"Why is gnet so fast?",id:"why-is-gnet-so-fast",children:[]}]},{value:"Stability",id:"stability",children:[{value:"Is gnet production-ready?",id:"is-gnet-production-ready",children:[]}]},{value:"Scope of application & usage",id:"scope-of-application--usage",children:[{value:"When should I use gnet instead of the standard net in Go?",id:"when-should-i-use-gnet-instead-of-the-standard-net-in-go",children:[]},{value:"How can I build networking applications of diverse protocols on top of gnet?",id:"how-can-i-build-networking-applications-of-diverse-protocols-on-top-of-gnet",children:[]}]},{value:"Contributing",id:"contributing",children:[{value:"How do I contribute to gnet?",id:"how-do-i-contribute-to-gnet",children:[]}]}],l={rightToc:s};function p(e){var t=e.components,n=Object(i.a)(e,["components"]);return Object(a.b)("wrapper",Object(o.a)({},l,n,{components:t,mdxType:"MDXLayout"}),Object(a.b)("h2",{id:"architecture--code--principles"},"Architecture & Code & Principles"),Object(a.b)("h3",{id:"why-is-gnet-so-fast"},"Why is gnet so fast?"),Object(a.b)("p",null,"gnet's networking model is a ",Object(a.b)("inlineCode",{parentName:"p"},"Reactor")," networking model with a event-driven mechanism that is designed and tuned to manage millions of network connections and handle a zillion requests, which backs gnet up to be the fastest networking framework in Go, and all it takes is a few goroutines."),Object(a.b)("p",null,"In addition to the first-class networking model, the implementation of auto-scaling and reusable elastic buffers in gnet is also one of the critical essentials for its high performance."),Object(a.b)("p",null,"..., etc."),Object(a.b)("h2",{id:"stability"},"Stability"),Object(a.b)("h3",{id:"is-gnet-production-ready"},"Is gnet production-ready?"),Object(a.b)("p",null,"Sure it is!"),Object(a.b)("p",null,"Actually, there are already many companies/organizations using ",Object(a.b)("inlineCode",{parentName:"p"},"gnet")," as the underlying network service in production and they have been worked well for a long time."),Object(a.b)("p",null,"Here is a partial list of gnet use cases: ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"https://gnet.host/#usecases"}),"https://gnet.host/#usecases"),"."),Object(a.b)("p",null,"..., etc."),Object(a.b)("h2",{id:"scope-of-application--usage"},"Scope of application & usage"),Object(a.b)("h3",{id:"when-should-i-use-gnet-instead-of-the-standard-net-in-go"},"When should I use gnet instead of the standard net in Go?"),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"gnet")," sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on transport layer with TCP/UDP protocols and Unix Domain Socket , so it allows developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon ",Object(a.b)("inlineCode",{parentName:"p"},"gnet")," for building diversified network applications, for instance, you get an HTTP Server or Web Framework if you implement HTTP protocol upon ",Object(a.b)("inlineCode",{parentName:"p"},"gnet")," while you have a Redis Server done with the implementation of Redis protocol upon ",Object(a.b)("inlineCode",{parentName:"p"},"gnet")," and so on."),Object(a.b)("p",null,Object(a.b)("inlineCode",{parentName:"p"},"gnet")," is not designed to displace the standard Go ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"https://golang.org/pkg/net/"}),"net")," package, but to create a networking client/server framework for Go that performs on par with ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"http://redis.io"}),"Redis")," and ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"http://www.haproxy.org"}),"Haproxy")," for networking packets handling (although it does not limit itself to these areas), therefore, ",Object(a.b)("inlineCode",{parentName:"p"},"gnet")," is not as comprehensive as Go ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"https://golang.org/pkg/net/"}),"net"),", it only provides the core functionalities (by a concise API set) of a networking application and it is not planned on being a full-featured networking framework, as I think ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"https://golang.org/pkg/net/"}),"net")," has done a good enough job in this area."),Object(a.b)("p",null,"In a word, if performance is not your top priority and you intend to take care of all corners during the networking development, then you should go with ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"https://golang.org/pkg/net/"}),"net"),", but if you are trying to build a insanely fast networking application with a very low resource footprint and looking for a solution, I believe ",Object(a.b)("inlineCode",{parentName:"p"},"gnet")," is the right choice for you."),Object(a.b)("h3",{id:"how-can-i-build-networking-applications-of-diverse-protocols-on-top-of-gnet"},"How can I build networking applications of diverse protocols on top of gnet?"),Object(a.b)("p",null,"There are some examples powered by gnet framework, go check out those source code and get an initial perception about developing networking applications based on gnet, after that, you might want to read the documentations of gnet to learn all its APIs and try to write a demo application."),Object(a.b)("ul",null,Object(a.b)("li",{parentName:"ul"},Object(a.b)("a",Object(o.a)({parentName:"li"},{href:"https://github.com/gnet-io/gnet-examples"}),"Examples for gnet")),Object(a.b)("li",{parentName:"ul"},Object(a.b)("a",Object(o.a)({parentName:"li"},{href:"https://gnet.host/docs/"}),"Documentations"))),Object(a.b)("p",null,"..., etc."),Object(a.b)("h2",{id:"contributing"},"Contributing"),Object(a.b)("h3",{id:"how-do-i-contribute-to-gnet"},"How do I contribute to gnet?"),Object(a.b)("p",null,"gnet is ",Object(a.b)("a",Object(o.a)({parentName:"p"},{href:"https://github.com/panjf2000/gnet"}),"open-source")," and welcomes contributions. A few guidelines to help you get started:"),Object(a.b)("ol",null,Object(a.b)("li",{parentName:"ol"},"Read our ",Object(a.b)("a",Object(o.a)({parentName:"li"},{href:"https://github.com/panjf2000/gnet/blob/master/CONTRIBUTING.md"}),"contribution guide"),"."),Object(a.b)("li",{parentName:"ol"},"Start with ",Object(a.b)("a",Object(o.a)({parentName:"li"},{href:"https://github.com/panjf2000/gnet/issues?q=is%3Aissue+label%3A%22good+first+issue%22"}),"good first issues"),"."),Object(a.b)("li",{parentName:"ol"},"Join our ",Object(a.b)("a",Object(o.a)({parentName:"li"},{href:"https://gitter.im/gnet-io/gnet"}),"chat")," if you have any questions. We are happy to help!")))}p.isMDXComponent=!0},246:function(e,t,n){"use strict";n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return g}));var o=n(0),i=n.n(o);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function c(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=i.a.createContext({}),p=function(e){var t=i.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},b=function(e){var t=p(e.components);return i.a.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},u=Object(o.forwardRef)((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,r=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),b=p(n),u=o,g=b["".concat(r,".").concat(u)]||b[u]||d[u]||a;return n?i.a.createElement(g,c({ref:t},l,{components:n})):i.a.createElement(g,c({ref:t},l))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=u;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,r[1]=c;for(var l=2;l=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=i.a.createContext({}),p=function(e){var t=i.a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):c({},t,{},e)),n},u=function(e){var t=p(e.components);return i.a.createElement(l.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return i.a.createElement(i.a.Fragment,{},t)}},d=Object(o.forwardRef)((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,r=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(n),d=o,g=u["".concat(r,".").concat(d)]||u[d]||b[d]||a;return n?i.a.createElement(g,c({ref:t},l,{components:n})):i.a.createElement(g,c({ref:t},l))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,r[1]=c;for(var l=2;l - + @@ -34,7 +34,7 @@ - + diff --git a/blog/announcing-gnet-v1-cn/index.html b/blog/announcing-gnet-v1-cn/index.html index fdcdf8355..569fafc12 100644 --- a/blog/announcing-gnet-v1-cn/index.html +++ b/blog/announcing-gnet-v1-cn/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/blog/announcing-gnet-v1/index.html b/blog/announcing-gnet-v1/index.html index 226d59ab6..f3e6ce33b 100644 --- a/blog/announcing-gnet-v1/index.html +++ b/blog/announcing-gnet-v1/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/blog/announcing-gnet-v2-3-0/index.html b/blog/announcing-gnet-v2-3-0/index.html index 040f12a4f..c708c5e39 100644 --- a/blog/announcing-gnet-v2-3-0/index.html +++ b/blog/announcing-gnet-v2-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/blog/announcing-gnet-v2/index.html b/blog/announcing-gnet-v2/index.html index 1d834ec28..f27ed7b66 100644 --- a/blog/announcing-gnet-v2/index.html +++ b/blog/announcing-gnet-v2/index.html @@ -21,7 +21,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/blog/index.html b/blog/index.html index 18b2b864e..a7bc03b63 100644 --- a/blog/index.html +++ b/blog/index.html @@ -21,7 +21,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/blog/tags/domain-presentation/index.html b/blog/tags/domain-presentation/index.html index ea4f050df..42b07bbc8 100644 --- a/blog/tags/domain-presentation/index.html +++ b/blog/tags/domain-presentation/index.html @@ -21,7 +21,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git "a/blog/tags/domain-\345\261\225\347\244\272/index.html" "b/blog/tags/domain-\345\261\225\347\244\272/index.html" index ddf3f48a0..cdfc73f65 100644 --- "a/blog/tags/domain-\345\261\225\347\244\272/index.html" +++ "b/blog/tags/domain-\345\261\225\347\244\272/index.html" @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/blog/tags/index.html b/blog/tags/index.html index b6634aecc..69284c14a 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -21,7 +21,7 @@ - + @@ -42,7 +42,7 @@ - + diff --git a/blog/tags/type-announcement/index.html b/blog/tags/type-announcement/index.html index 9761fa388..9e8fb93a4 100644 --- a/blog/tags/type-announcement/index.html +++ b/blog/tags/type-announcement/index.html @@ -21,7 +21,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git "a/blog/tags/type-\345\256\230\345\256\243/index.html" "b/blog/tags/type-\345\256\230\345\256\243/index.html" index e078e75d7..25c34015f 100644 --- "a/blog/tags/type-\345\256\230\345\256\243/index.html" +++ "b/blog/tags/type-\345\256\230\345\256\243/index.html" @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/community/index.html b/community/index.html index 0748208db..9d263e6dc 100644 --- a/community/index.html +++ b/community/index.html @@ -21,7 +21,7 @@ - + @@ -40,7 +40,7 @@ - + diff --git a/contact/index.html b/contact/index.html index 042487eb1..8ed977c6d 100644 --- a/contact/index.html +++ b/contact/index.html @@ -21,7 +21,7 @@ - + @@ -40,7 +40,7 @@ - + diff --git a/docs/about/overview-cn/index.html b/docs/about/overview-cn/index.html index 702ec104c..e5dea1717 100644 --- a/docs/about/overview-cn/index.html +++ b/docs/about/overview-cn/index.html @@ -21,7 +21,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/docs/about/overview/index.html b/docs/about/overview/index.html index 711d6745e..41c6a8a35 100644 --- a/docs/about/overview/index.html +++ b/docs/about/overview/index.html @@ -21,7 +21,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/docs/benchmark/index.html b/docs/benchmark/index.html index b83d80828..894c54a8c 100644 --- a/docs/benchmark/index.html +++ b/docs/benchmark/index.html @@ -21,7 +21,7 @@ - + @@ -54,7 +54,7 @@ - + diff --git a/docs/faq/index.html b/docs/faq/index.html index 2efef79e0..80055fcd2 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -21,7 +21,7 @@ - + @@ -39,18 +39,18 @@ - +
-

FAQ

Architecture & Code & Principles

Why is gnet so fast?

gnet's networking model is a Reactor networking model with a event-driven mechanism that is designed and tuned to manage millions of network connections and handle a zillion requests, which backs gnet up to be the fatest networking framework in Go, and all it takes is a few goroutines.

In addition to the first-class networking model, the implementation of auto-scaling and reusable elastic buffers in gnet is also one of the critical essentials for its high performance.

..., etc.

Stability

Is gnet solid enough to be used in production?

Sure it is!

Actually, there are already many companies/organizations using gnet as the underlying network service in production and they have been worked well for a long time.

Here is a partial list of gnet use cases: https://gnet.host/#usecases.

..., etc.

Scope of application & usage

When should I use gnet instead of the standard net in Go?

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on transport layer with TCP/UDP protocols and Unix Domain Socket , so it allows developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network applications, for instance, you get an HTTP Server or Web Framework if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet is not designed to displace the standard Go net package, but to create a networking client/server framework for Go that performs on par with Redis and Haproxy for networking packets handling (although it does not limit itself to these areas), therefore, gnet is not as comprehensive as Go net, it only provides the core functionalities (by a concise API set) of a networking application and it is not planned on being a full-featured networking framework, as I think net has done a good enough job in this area.

In a word, if performance is not your top priority and you intend to take care of all corners during the networking development, then you should go with net, but if you are trying to build a insanely fast networking application with a very low resource footprint and looking for a solution, I believe gnet is the right choice for you.

How can I build networking applications of diverse protocols on top of gnet?

There are some examples powered by gnet framework, go check out those source code and get an initial perception about developing networking applications based on gnet, after that, you might want to read the documentations of gnet to learn all its APIs and try to write a demo application.

..., etc.

Contributing

How do I contribute to gnet?

gnet is open-source and welcomes contributions. A few guidelines to help you get started:

  1. Read our contribution guide.
  2. Start with good first issues.
  3. Join our chat if you have any questions. We are happy to help!
+

FAQ

Architecture & Code & Principles

Why is gnet so fast?

gnet's networking model is a Reactor networking model with a event-driven mechanism that is designed and tuned to manage millions of network connections and handle a zillion requests, which backs gnet up to be the fastest networking framework in Go, and all it takes is a few goroutines.

In addition to the first-class networking model, the implementation of auto-scaling and reusable elastic buffers in gnet is also one of the critical essentials for its high performance.

..., etc.

Stability

Is gnet production-ready?

Sure it is!

Actually, there are already many companies/organizations using gnet as the underlying network service in production and they have been worked well for a long time.

Here is a partial list of gnet use cases: https://gnet.host/#usecases.

..., etc.

Scope of application & usage

When should I use gnet instead of the standard net in Go?

gnet sells itself as a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go which works on transport layer with TCP/UDP protocols and Unix Domain Socket , so it allows developers to implement their own protocols(HTTP, RPC, WebSocket, Redis, etc.) of application layer upon gnet for building diversified network applications, for instance, you get an HTTP Server or Web Framework if you implement HTTP protocol upon gnet while you have a Redis Server done with the implementation of Redis protocol upon gnet and so on.

gnet is not designed to displace the standard Go net package, but to create a networking client/server framework for Go that performs on par with Redis and Haproxy for networking packets handling (although it does not limit itself to these areas), therefore, gnet is not as comprehensive as Go net, it only provides the core functionalities (by a concise API set) of a networking application and it is not planned on being a full-featured networking framework, as I think net has done a good enough job in this area.

In a word, if performance is not your top priority and you intend to take care of all corners during the networking development, then you should go with net, but if you are trying to build a insanely fast networking application with a very low resource footprint and looking for a solution, I believe gnet is the right choice for you.

How can I build networking applications of diverse protocols on top of gnet?

There are some examples powered by gnet framework, go check out those source code and get an initial perception about developing networking applications based on gnet, after that, you might want to read the documentations of gnet to learn all its APIs and try to write a demo application.

..., etc.

Contributing

How do I contribute to gnet?

gnet is open-source and welcomes contributions. A few guidelines to help you get started:

  1. Read our contribution guide.
  2. Start with good first issues.
  3. Join our chat if you have any questions. We are happy to help!
- + @@ -68,7 +68,7 @@ - + diff --git a/docs/index.html b/docs/index.html index 1aa64dd6a..0543939b2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -17,7 +17,7 @@ - + @@ -32,7 +32,7 @@ - + diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html index a57e27cb4..09bc0d88b 100644 --- a/docs/quickstart/index.html +++ b/docs/quickstart/index.html @@ -21,7 +21,7 @@ - + @@ -58,7 +58,7 @@ - + diff --git a/docs/tutorial/best-practices/index.html b/docs/tutorial/best-practices/index.html index c85511124..0dc0ae7ea 100644 --- a/docs/tutorial/best-practices/index.html +++ b/docs/tutorial/best-practices/index.html @@ -21,7 +21,7 @@ - + @@ -50,7 +50,7 @@ - + diff --git a/docs/v1.x/doc-for-gnet-v1-cn/index.html b/docs/v1.x/doc-for-gnet-v1-cn/index.html index 435f04775..3cb69cc76 100644 --- a/docs/v1.x/doc-for-gnet-v1-cn/index.html +++ b/docs/v1.x/doc-for-gnet-v1-cn/index.html @@ -21,7 +21,7 @@ - + @@ -79,7 +79,7 @@ - + diff --git a/docs/v1.x/doc-for-gnet-v1/index.html b/docs/v1.x/doc-for-gnet-v1/index.html index 7bbf13b6d..0f1b9113c 100644 --- a/docs/v1.x/doc-for-gnet-v1/index.html +++ b/docs/v1.x/doc-for-gnet-v1/index.html @@ -21,7 +21,7 @@ - + @@ -80,7 +80,7 @@ - + diff --git a/highlights/2019-11-07-supported-multiple-codecs/index.html b/highlights/2019-11-07-supported-multiple-codecs/index.html index c40d1a4b1..5ba421510 100644 --- a/highlights/2019-11-07-supported-multiple-codecs/index.html +++ b/highlights/2019-11-07-supported-multiple-codecs/index.html @@ -21,7 +21,7 @@ - + @@ -45,7 +45,7 @@ - + diff --git a/highlights/2019-11-12-supported-windows/index.html b/highlights/2019-11-12-supported-windows/index.html index e32616de0..018bf35d6 100644 --- a/highlights/2019-11-12-supported-windows/index.html +++ b/highlights/2019-11-12-supported-windows/index.html @@ -21,7 +21,7 @@ - + @@ -45,7 +45,7 @@ - + diff --git a/highlights/2020-03-13-released-first-version/index.html b/highlights/2020-03-13-released-first-version/index.html index 8df1a6472..c9a0932f6 100644 --- a/highlights/2020-03-13-released-first-version/index.html +++ b/highlights/2020-03-13-released-first-version/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html b/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html index f894947d4..cecc00e1d 100644 --- a/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html +++ b/highlights/2020-03-31-supported-least-connections-load-balancing-algorithm/index.html @@ -21,7 +21,7 @@ - + @@ -45,7 +45,7 @@ - + diff --git a/highlights/2020-04-03-released-1-1-0/index.html b/highlights/2020-04-03-released-1-1-0/index.html index 89a6cca2e..44d716893 100644 --- a/highlights/2020-04-03-released-1-1-0/index.html +++ b/highlights/2020-04-03-released-1-1-0/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2020-05-11-released-1-2-0/index.html b/highlights/2020-05-11-released-1-2-0/index.html index 16ad97c1d..be1a12bfb 100644 --- a/highlights/2020-05-11-released-1-2-0/index.html +++ b/highlights/2020-05-11-released-1-2-0/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2020-07-02-raw-syscalls-sockets/index.html b/highlights/2020-07-02-raw-syscalls-sockets/index.html index 6fb711a5a..e803a1e8f 100644 --- a/highlights/2020-07-02-raw-syscalls-sockets/index.html +++ b/highlights/2020-07-02-raw-syscalls-sockets/index.html @@ -21,7 +21,7 @@ - + @@ -45,7 +45,7 @@ - + diff --git a/highlights/2020-09-13-released-1-3-0/index.html b/highlights/2020-09-13-released-1-3-0/index.html index 68e435536..fbdea6650 100644 --- a/highlights/2020-09-13-released-1-3-0/index.html +++ b/highlights/2020-09-13-released-1-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2020-09-13-supported-locking-os-thread/index.html b/highlights/2020-09-13-supported-locking-os-thread/index.html index 98fbad9d1..dded16a5b 100644 --- a/highlights/2020-09-13-supported-locking-os-thread/index.html +++ b/highlights/2020-09-13-supported-locking-os-thread/index.html @@ -21,7 +21,7 @@ - + @@ -45,7 +45,7 @@ - + diff --git a/highlights/2021-02-17-released-1-4-0/index.html b/highlights/2021-02-17-released-1-4-0/index.html index d6de47edf..02656f231 100644 --- a/highlights/2021-02-17-released-1-4-0/index.html +++ b/highlights/2021-02-17-released-1-4-0/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2021-07-11-released-1-5-0/index.html b/highlights/2021-07-11-released-1-5-0/index.html index 18d0dfcb9..e00170ddc 100644 --- a/highlights/2021-07-11-released-1-5-0/index.html +++ b/highlights/2021-07-11-released-1-5-0/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2021-07-20-released-1-5-2/index.html b/highlights/2021-07-20-released-1-5-2/index.html index d533e9796..9d286ec63 100644 --- a/highlights/2021-07-20-released-1-5-2/index.html +++ b/highlights/2021-07-20-released-1-5-2/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2021-12-05-released-1-6-0/index.html b/highlights/2021-12-05-released-1-6-0/index.html index 7106e113d..cc22de3c4 100644 --- a/highlights/2021-12-05-released-1-6-0/index.html +++ b/highlights/2021-12-05-released-1-6-0/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2022-02-27-release-of-gnet-v2/index.html b/highlights/2022-02-27-release-of-gnet-v2/index.html index ed8676a92..488cf8908 100644 --- a/highlights/2022-02-27-release-of-gnet-v2/index.html +++ b/highlights/2022-02-27-release-of-gnet-v2/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html b/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html index 26c64ffab..f236176d8 100644 --- a/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html +++ b/highlights/2023-05-19-release-candidate-for-gnet-v2-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/2023-05-20-gnet-techempower-benchmark-no1/index.html b/highlights/2023-05-20-gnet-techempower-benchmark-no1/index.html index 8d7a6d485..8d8e8fd90 100644 --- a/highlights/2023-05-20-gnet-techempower-benchmark-no1/index.html +++ b/highlights/2023-05-20-gnet-techempower-benchmark-no1/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/index.html b/highlights/index.html index 12d9fa66d..31e5ef3e2 100644 --- a/highlights/index.html +++ b/highlights/index.html @@ -21,7 +21,7 @@ - + @@ -74,7 +74,7 @@ - + diff --git a/highlights/tags/domain-load-balancing/index.html b/highlights/tags/domain-load-balancing/index.html index 13696de3b..407dae54c 100644 --- a/highlights/tags/domain-load-balancing/index.html +++ b/highlights/tags/domain-load-balancing/index.html @@ -21,7 +21,7 @@ - + @@ -48,7 +48,7 @@ - + diff --git a/highlights/tags/domain-os/index.html b/highlights/tags/domain-os/index.html index 1a3b780e8..255e43201 100644 --- a/highlights/tags/domain-os/index.html +++ b/highlights/tags/domain-os/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-socket/index.html b/highlights/tags/domain-socket/index.html index dbf708761..6139d8cba 100644 --- a/highlights/tags/domain-socket/index.html +++ b/highlights/tags/domain-socket/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-thread/index.html b/highlights/tags/domain-thread/index.html index 8b31909f2..cc28fe9a2 100644 --- a/highlights/tags/domain-thread/index.html +++ b/highlights/tags/domain-thread/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-0-0/index.html b/highlights/tags/domain-v-1-0-0/index.html index 69da31ded..6932d65c8 100644 --- a/highlights/tags/domain-v-1-0-0/index.html +++ b/highlights/tags/domain-v-1-0-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-1-0/index.html b/highlights/tags/domain-v-1-1-0/index.html index 85762f542..0bc22f663 100644 --- a/highlights/tags/domain-v-1-1-0/index.html +++ b/highlights/tags/domain-v-1-1-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-2-0/index.html b/highlights/tags/domain-v-1-2-0/index.html index 17571c31c..e829105ab 100644 --- a/highlights/tags/domain-v-1-2-0/index.html +++ b/highlights/tags/domain-v-1-2-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-3-0/index.html b/highlights/tags/domain-v-1-3-0/index.html index 5bd242987..31435431c 100644 --- a/highlights/tags/domain-v-1-3-0/index.html +++ b/highlights/tags/domain-v-1-3-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-4-0/index.html b/highlights/tags/domain-v-1-4-0/index.html index 37dad74a6..63a8dac8f 100644 --- a/highlights/tags/domain-v-1-4-0/index.html +++ b/highlights/tags/domain-v-1-4-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-5-0/index.html b/highlights/tags/domain-v-1-5-0/index.html index 7213d002f..6f15bd900 100644 --- a/highlights/tags/domain-v-1-5-0/index.html +++ b/highlights/tags/domain-v-1-5-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-5-2/index.html b/highlights/tags/domain-v-1-5-2/index.html index afe67b8a1..7c5f86396 100644 --- a/highlights/tags/domain-v-1-5-2/index.html +++ b/highlights/tags/domain-v-1-5-2/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-1-6-0/index.html b/highlights/tags/domain-v-1-6-0/index.html index 76493a2aa..398751aa2 100644 --- a/highlights/tags/domain-v-1-6-0/index.html +++ b/highlights/tags/domain-v-1-6-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-2-0-0/index.html b/highlights/tags/domain-v-2-0-0/index.html index 1fda08997..3d840218d 100644 --- a/highlights/tags/domain-v-2-0-0/index.html +++ b/highlights/tags/domain-v-2-0-0/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-2-3-0-rc-1/index.html b/highlights/tags/domain-v-2-3-0-rc-1/index.html index 6e5bf6bc8..f834e3ec1 100644 --- a/highlights/tags/domain-v-2-3-0-rc-1/index.html +++ b/highlights/tags/domain-v-2-3-0-rc-1/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/domain-v-2-3-0-rc-2/index.html b/highlights/tags/domain-v-2-3-0-rc-2/index.html index b6e7e51ef..9757f60f2 100644 --- a/highlights/tags/domain-v-2-3-0-rc-2/index.html +++ b/highlights/tags/domain-v-2-3-0-rc-2/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/index.html b/highlights/tags/index.html index 9b8443e2c..2e52189d7 100644 --- a/highlights/tags/index.html +++ b/highlights/tags/index.html @@ -21,7 +21,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/highlights/tags/platform-arm-64/index.html b/highlights/tags/platform-arm-64/index.html index 9e5a0f101..ce229cb1a 100644 --- a/highlights/tags/platform-arm-64/index.html +++ b/highlights/tags/platform-arm-64/index.html @@ -21,7 +21,7 @@ - + @@ -48,7 +48,7 @@ - + diff --git a/highlights/tags/platform-windows/index.html b/highlights/tags/platform-windows/index.html index 951746ff5..de5fd7164 100644 --- a/highlights/tags/platform-windows/index.html +++ b/highlights/tags/platform-windows/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/type-new-feature/index.html b/highlights/tags/type-new-feature/index.html index e1351a22b..8f1c90453 100644 --- a/highlights/tags/type-new-feature/index.html +++ b/highlights/tags/type-new-feature/index.html @@ -21,7 +21,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/highlights/tags/type-optimization/index.html b/highlights/tags/type-optimization/index.html index bbf6df1d8..45a49ceac 100644 --- a/highlights/tags/type-optimization/index.html +++ b/highlights/tags/type-optimization/index.html @@ -21,7 +21,7 @@ - + @@ -46,7 +46,7 @@ - + diff --git a/highlights/tags/type-release/index.html b/highlights/tags/type-release/index.html index 5b2cb3693..f0d0b7e4c 100644 --- a/highlights/tags/type-release/index.html +++ b/highlights/tags/type-release/index.html @@ -21,7 +21,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/highlights/tags/type-tag/index.html b/highlights/tags/type-tag/index.html index c504f6ed9..e99ede15e 100644 --- a/highlights/tags/type-tag/index.html +++ b/highlights/tags/type-tag/index.html @@ -21,7 +21,7 @@ - + @@ -54,7 +54,7 @@ - + diff --git a/index.html b/index.html index b2808a911..ac4b8de61 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,7 @@ - + @@ -42,7 +42,7 @@ - + diff --git a/runtime~main.4596f54b.js b/runtime~main.6e50deb3.js similarity index 99% rename from runtime~main.4596f54b.js rename to runtime~main.6e50deb3.js index 8098f59b6..f9a104798 100644 --- a/runtime~main.4596f54b.js +++ b/runtime~main.6e50deb3.js @@ -1 +1 @@ -!function(e){function f(f){for(var d,a,r=f[0],n=f[1],o=f[2],u=0,i=[];u