diff --git a/404.html b/404.html index 8926c9e..176937f 100644 --- a/404.html +++ b/404.html @@ -1,4 +1,4 @@ -找不到页面 | Orbien +找不到页面 | Orbien
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

\ No newline at end of file diff --git a/assets/js/6b77a8a0.439d4f24.js b/assets/js/6b77a8a0.869a7de1.js similarity index 70% rename from assets/js/6b77a8a0.439d4f24.js rename to assets/js/6b77a8a0.869a7de1.js index 73be5fc..96e89f7 100644 --- a/assets/js/6b77a8a0.439d4f24.js +++ b/assets/js/6b77a8a0.869a7de1.js @@ -1,2 +1,2 @@ "use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["646"],{1898(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>A,frontMatter:()=>N,contentTitle:()=>S,toc:()=>I,assets:()=>_});var t=JSON.parse('{"id":"integrations/springboot","title":"Spring Boot \u96C6\u6210","description":"Orbien \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A","source":"@site/docs/integrations/springboot.mdx","sourceDirName":"integrations","slug":"/integrations/springboot","permalink":"/orbien/docs/integrations/springboot","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/integrations/springboot.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"SpringBoot\u96C6\u6210"},"sidebar":"docsSidebar","previous":{"title":"\u73AF\u5883\u53D8\u91CF","permalink":"/orbien/docs/features/env"},"next":{"title":"\u6027\u80FD\u6D4B\u8BD5","permalink":"/orbien/docs/performance"}}'),o=r(1987),a=r(7008),i=r(1763),s=r(3526),l=r(1009),c=r(6532),u=r(9879),d=r(9327),p=r(8292),h=r(8184);function b({value:e,tabValues:n}){return n.some(n=>n.value===e)}let f=(0,i.createContext)(null);function m(){let e=i.useContext(f);if(!e)throw Error("useTabsContext() must be used within a Tabs component");return e}function x(e){return(0,o.jsx)(f.Provider,{value:e.value,children:e.children})}var g=r(8522),v=r(8261);function j({className:e}){let{selectedValue:n,selectValue:r,tabValues:t,block:a}=m(),i=[],{blockElementScrollPositionUntilNextRender:l}=(0,g.a_)(),c=e=>{let o=e.currentTarget,a=t[i.indexOf(o)].value;a!==n&&(l(o),r(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1]}}n?.focus()};return(0,o.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":a},e),children:t.map(({value:e,label:r,attributes:t})=>(0,o.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{i.push(e)},onKeyDown:u,onClick:c,...t,className:(0,s.A)("tabs__item","tabItem_Xg_G",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function y({children:e}){return(0,o.jsx)("div",{className:"margin-top--md",children:e})}function T({className:e,children:n}){return(0,o.jsxs)("div",{className:(0,s.A)(l.G.tabs.container,"tabs-container","tabList_f3wh"),children:[(0,o.jsx)(j,{className:e}),(0,o.jsx)(y,{children:n})]})}function w(e){var n;let r=(0,v.A)(),t=function(e){let n,{defaultValue:r,queryString:t=!1,groupId:o}=e,a=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??i.Children.toArray(r).flatMap(e=>{if(!e)return[];if((0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return[e];let n="string"==typeof e.type?e.type:e.type.name;throw Error(`Docusaurus error: Bad child <${n}>: all children of the component should be , and every should have a unique "value" prop. -If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[s,l]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[f,m]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[x,g]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=b({value:n=f??x,tabValues:a})?n:null;return(0,u.A)(()=>{v&&l(v)},[v]),{selectedValue:s,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);l(e),m(e),g(e)},[m,g,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(x,{value:t,children:(0,o.jsx)(T,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function k({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_vIHf",n),hidden:r,children:e})}function C({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=m(),i=r===t;return!i&&a?null:(0,o.jsx)(k,{className:n,hidden:!i,children:e})}let N={sidebar_position:1,sidebar_label:"SpringBoot\u96C6\u6210"},S="Spring Boot \u96C6\u6210",_={},I=[{value:"\u6700\u5C0F\u914D\u7F6E",id:"\u6700\u5C0F\u914D\u7F6E",level:2},{value:"\u5B8C\u6574\u53C2\u8003",id:"\u5B8C\u6574\u53C2\u8003",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-\u96C6\u6210",children:"Spring Boot \u96C6\u6210"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\u96A7\u9053\u534F\u8BAE\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"}),"\u3001",(0,o.jsx)(n.strong,{children:"HTTP"})]}),"\n",(0,o.jsxs)(n.li,{children:["\u4F20\u8F93\u5C42\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"\u4E0D\u652F\u6301 TCP \u591A\u8DEF\u590D\u7528"}),"\uFF1A",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," \u5FC5\u987B\u4E3A ",(0,o.jsx)(n.code,{children:"false"}),"\uFF0C\u670D\u52A1\u7AEF\u4E5F\u9700 ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"}),"\uFF08\u670D\u52A1\u7AEF\u9ED8\u8BA4\u5F00\u542F\u591A\u8DEF\u590D\u7528\uFF0C\u4E0E Java \u5BA2\u6237\u7AEF\u8054\u8C03\u65F6\u9700\u663E\u5F0F\u5173\u95ED\uFF09"]}),"\n"]}),"\n",(0,o.jsxs)(w,{children:[(0,o.jsx)(C,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.1.0-beta.1\n\n"})})}),(0,o.jsx)(C,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.1.0-beta.1")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"\u6700\u5C0F\u914D\u7F6E",children:"\u6700\u5C0F\u914D\u7F6E"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," / ",(0,o.jsx)(n.code,{children:"name"})," \u53EF\u7701\u7565\uFF1A\u672A\u586B\u65F6\u5206\u522B\u4F7F\u7528 Spring Boot Web \u7AEF\u53E3\u4E0E ",(0,o.jsx)(n.code,{children:"spring.application.name"}),"\uFF08\u6216 ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),"\uFF09\u3002"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n # token: YOUR_TOKEN # \u53EF\u9009\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n"})}),"\n",(0,o.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\u9700\u5173\u95ED\u591A\u8DEF\u590D\u7528\uFF0C\u4F8B\u5982\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # \u5173\u95ED TCP \u591A\u8DEF\u590D\u7528\n'})}),"\n",(0,o.jsx)(n.h2,{id:"\u5B8C\u6574\u53C2\u8003",children:"\u5B8C\u6574\u53C2\u8003"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n server-port: 9527\n token: YOUR_TOKEN\n tcp-mux: false # \u5FC5\u987B\u4E3A false\uFF0C\u4E14\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4\n pool-count: 1 # \u767B\u5F55\u65F6\u9884\u7533\u8BF7\u7684\u6570\u636E\u8FDE\u63A5\u6C60\u5927\u5C0F\n heartbeat-interval-secs: 30\n user: spring-boot-demo # \u53EF\u9009\uFF0C\u5C55\u793A\u5728 Dashboard\n # session-id: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4ECE session-id-file \u6062\u590D\uFF0C\u6216\u81EA\u52A8\u751F\u6210\n # session-id-file: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4F7F\u7528\u7528\u6237\u76EE\u5F55\u4E0B\u7684\u9ED8\u8BA4\u8DEF\u5F84\n tunnel:\n name: web-demo # \u53EF\u9009\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # \u53EF\u9009\uFF1B\u672A\u586B\u5219\u4F7F\u7528 Spring Boot \u76D1\u542C\u7AEF\u53E3\n # remote-port: 9000 # \u4EC5 protocol=tcp \u65F6\u9700\u8981\n domains: # protocol=http \u65F6\u5FC5\u586B\n - web.domain.com\n'})})]})}function A(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>s});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file +If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[s,l]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!b({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[f,m]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[x,g]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=b({value:n=f??x,tabValues:a})?n:null;return(0,u.A)(()=>{v&&l(v)},[v]),{selectedValue:s,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);l(e),m(e),g(e)},[m,g,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(x,{value:t,children:(0,o.jsx)(T,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function k({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,s.A)("tabItem_vIHf",n),hidden:r,children:e})}function C({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=m(),i=r===t;return!i&&a?null:(0,o.jsx)(k,{className:n,hidden:!i,children:e})}let N={sidebar_position:1,sidebar_label:"SpringBoot\u96C6\u6210"},S="Spring Boot \u96C6\u6210",_={},I=[{value:"\u6700\u5C0F\u914D\u7F6E",id:"\u6700\u5C0F\u914D\u7F6E",level:2},{value:"\u5B8C\u6574\u53C2\u8003",id:"\u5B8C\u6574\u53C2\u8003",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-\u96C6\u6210",children:"Spring Boot \u96C6\u6210"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," \u63D0\u4F9B\u53EF\u5185\u5D4C\u5230 Spring Boot \u7684 Java \u5BA2\u6237\u7AEF\uFF0C\u5F53\u524D\u80FD\u529B\uFF1A"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\u96A7\u9053\u534F\u8BAE\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"}),"\u3001",(0,o.jsx)(n.strong,{children:"HTTP"})]}),"\n",(0,o.jsxs)(n.li,{children:["\u4F20\u8F93\u5C42\uFF1A\u4EC5 ",(0,o.jsx)(n.strong,{children:"TCP"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"\u4E0D\u652F\u6301 TCP \u591A\u8DEF\u590D\u7528"}),"\uFF1A",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," \u5FC5\u987B\u4E3A ",(0,o.jsx)(n.code,{children:"false"}),"\uFF0C\u670D\u52A1\u7AEF\u4E5F\u9700 ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"}),"\uFF08\u670D\u52A1\u7AEF\u9ED8\u8BA4\u5F00\u542F\u591A\u8DEF\u590D\u7528\uFF0C\u4E0E Java \u5BA2\u6237\u7AEF\u8054\u8C03\u65F6\u9700\u663E\u5F0F\u5173\u95ED\uFF09"]}),"\n"]}),"\n",(0,o.jsxs)(w,{children:[(0,o.jsx)(C,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.1.0\n\n"})})}),(0,o.jsx)(C,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.1.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"\u6700\u5C0F\u914D\u7F6E",children:"\u6700\u5C0F\u914D\u7F6E"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," / ",(0,o.jsx)(n.code,{children:"name"})," \u53EF\u7701\u7565\uFF1A\u672A\u586B\u65F6\u5206\u522B\u4F7F\u7528 Spring Boot Web \u7AEF\u53E3\u4E0E ",(0,o.jsx)(n.code,{children:"spring.application.name"}),"\uFF08\u6216 ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),"\uFF09\u3002"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n # token: YOUR_TOKEN # \u53EF\u9009\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n"})}),"\n",(0,o.jsx)(n.p,{children:"\u670D\u52A1\u7AEF\u9700\u5173\u95ED\u591A\u8DEF\u590D\u7528\uFF0C\u4F8B\u5982\uFF1A"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # \u5173\u95ED TCP \u591A\u8DEF\u590D\u7528\n'})}),"\n",(0,o.jsx)(n.h2,{id:"\u5B8C\u6574\u53C2\u8003",children:"\u5B8C\u6574\u53C2\u8003"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n server-port: 9527\n token: YOUR_TOKEN\n tcp-mux: false # \u5FC5\u987B\u4E3A false\uFF0C\u4E14\u4E0E\u670D\u52A1\u7AEF\u4E00\u81F4\n pool-count: 1 # \u767B\u5F55\u65F6\u9884\u7533\u8BF7\u7684\u6570\u636E\u8FDE\u63A5\u6C60\u5927\u5C0F\n heartbeat-interval-secs: 30\n user: spring-boot-demo # \u53EF\u9009\uFF0C\u5C55\u793A\u5728 Dashboard\n # session-id: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4ECE session-id-file \u6062\u590D\uFF0C\u6216\u81EA\u52A8\u751F\u6210\n # session-id-file: "" # \u53EF\u9009\uFF1B\u4E3A\u7A7A\u5219\u4F7F\u7528\u7528\u6237\u76EE\u5F55\u4E0B\u7684\u9ED8\u8BA4\u8DEF\u5F84\n tunnel:\n name: web-demo # \u53EF\u9009\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # \u53EF\u9009\uFF1B\u672A\u586B\u5219\u4F7F\u7528 Spring Boot \u76D1\u542C\u7AEF\u53E3\n # remote-port: 9000 # \u4EC5 protocol=tcp \u65F6\u9700\u8981\n domains: # protocol=http \u65F6\u5FC5\u586B\n - web.domain.com\n'})})]})}function A(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>s});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6f0c936.64c89bb0.js b/assets/js/e6f0c936.64c89bb0.js deleted file mode 100644 index ee88cb8..0000000 --- a/assets/js/e6f0c936.64c89bb0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["440"],{7152(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>I,frontMatter:()=>v,contentTitle:()=>k,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","source":"@site/docs/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u4E0B\u8F7D"},"sidebar":"docsSidebar","previous":{"title":"\u4ECB\u7ECD","permalink":"/orbien/docs/intro"},"next":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"}}'),i=n(1987),o=n(7008),a=n(1763),d=n(3526),l=n(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},j=[{id:"server",name:"orbien-server",label:(0,i.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,i.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,i.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function g(e,r){if("orbien-desktop"!==e)return"tar.gz";switch(r){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,r]=(0,a.useState)("3.1.0-beta.1"),[n,s]=(0,a.useState)(null),[o,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let n=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!n.ok)return;let i=await n.json();if(e)return;let o=i.tag_name?.replace(/^v/,"");o&&r(o),i.assets&&s(new Set(i.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let v=(0,a.useMemo)(()=>{let e=new Map,r=0;for(;r(0,i.jsx)("th",{children:e.label},e.id)),(0,i.jsx)("th",{children:(0,i.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,i.jsx)("tbody",{children:x.map((r,s)=>{let a=v.get(s),t=void 0!==a,c="linux"===r.os?r.libc:void 0;return(0,i.jsxs)("tr",{className:(0,d.A)(o===r.os&&"rowHighlight_Rqix"),children:[t?(0,i.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[r.os]}):null,(0,i.jsx)("td",{children:(0,i.jsx)("code",{children:w[r.arch]})}),(0,i.jsx)("td",{children:c?(0,i.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),j.map(s=>{var o,a,d,l,t,u,m,x,p,w;let j,f,v="orbien-desktop"===s.name,k=v?"linux"===r.os&&"gnu"===r.libc?"gnu":void 0:c,_=(o=s.name,a=r.os,d=r.arch,b.has(k?`${o}|${a}|${d}|${k}`:`${o}|${a}|${d}`)),$=(l=s.name,t=r.os,u=v?void 0:c,j=g(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${j}`:j),N=(m=s.name,x=r.os,p=r.arch,w=v?void 0:c,f=g(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!n||n.has(N);return(0,i.jsx)("td",{children:_&&I?(0,i.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,i.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(r.noteId)})]},`${r.os}-${r.arch}-${r.libc??"default"}`)})})]})}),(0,i.jsxs)("div",{className:"docker_YIhP",children:[(0,i.jsx)("h3",{children:"Docker"}),(0,i.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien-server"}),(0,i.jsx)("span",{className:u,children:"server"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien"}),(0,i.jsx)("span",{className:u,children:"client"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let v={sidebar_position:2,sidebar_label:"\u4E0B\u8F7D"},k="\u4E0B\u8F7D",_={},$=[];function N(e){let r={h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u4E0B\u8F7D",children:"\u4E0B\u8F7D"})}),"\n",(0,i.jsx)(r.p,{children:"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305"}),"\n",(0,i.jsx)(f,{})]})}function I(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(N,{...e})}):N(e)}},7008(e,r,n){n.d(r,{R:()=>a,x:()=>d});var s=n(1763);let i={},o=s.createContext(i);function a(e){let r=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6f0c936.e1a22c75.js b/assets/js/e6f0c936.e1a22c75.js new file mode 100644 index 0000000..30716d6 --- /dev/null +++ b/assets/js/e6f0c936.e1a22c75.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["440"],{7152(e,r,n){n.r(r),n.d(r,{metadata:()=>s,default:()=>I,frontMatter:()=>v,contentTitle:()=>k,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"\u4E0B\u8F7D","description":"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305","source":"@site/docs/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"\u4E0B\u8F7D"},"sidebar":"docsSidebar","previous":{"title":"\u4ECB\u7ECD","permalink":"/orbien/docs/intro"},"next":{"title":"\u5FEB\u901F\u5F00\u59CB","permalink":"/orbien/docs/quickstart"}}'),i=n(1987),o=n(7008),a=n(1763),d=n(3526),l=n(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},j=[{id:"server",name:"orbien-server",label:(0,i.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,i.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,i.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function g(e,r){if("orbien-desktop"!==e)return"tar.gz";switch(r){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,r]=(0,a.useState)("3.1.0"),[n,s]=(0,a.useState)(null),[o,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let n=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!n.ok)return;let i=await n.json();if(e)return;let o=i.tag_name?.replace(/^v/,"");o&&r(o),i.assets&&s(new Set(i.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let v=(0,a.useMemo)(()=>{let e=new Map,r=0;for(;r(0,i.jsx)("th",{children:e.label},e.id)),(0,i.jsx)("th",{children:(0,i.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,i.jsx)("tbody",{children:x.map((r,s)=>{let a=v.get(s),t=void 0!==a,c="linux"===r.os?r.libc:void 0;return(0,i.jsxs)("tr",{className:(0,d.A)(o===r.os&&"rowHighlight_Rqix"),children:[t?(0,i.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[r.os]}):null,(0,i.jsx)("td",{children:(0,i.jsx)("code",{children:w[r.arch]})}),(0,i.jsx)("td",{children:c?(0,i.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),j.map(s=>{var o,a,d,l,t,u,m,x,p,w;let j,f,v="orbien-desktop"===s.name,k=v?"linux"===r.os&&"gnu"===r.libc?"gnu":void 0:c,_=(o=s.name,a=r.os,d=r.arch,b.has(k?`${o}|${a}|${d}|${k}`:`${o}|${a}|${d}`)),$=(l=s.name,t=r.os,u=v?void 0:c,j=g(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${j}`:j),N=(m=s.name,x=r.os,p=r.arch,w=v?void 0:c,f=g(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!n||n.has(N);return(0,i.jsx)("td",{children:_&&I?(0,i.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,i.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(r.noteId)})]},`${r.os}-${r.arch}-${r.libc??"default"}`)})})]})}),(0,i.jsxs)("div",{className:"docker_YIhP",children:[(0,i.jsx)("h3",{children:"Docker"}),(0,i.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien-server"}),(0,i.jsx)("span",{className:u,children:"server"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,i.jsxs)("li",{className:t,children:[(0,i.jsxs)("div",{className:c,children:[(0,i.jsx)("strong",{children:"orbien"}),(0,i.jsx)("span",{className:u,children:"client"})]}),(0,i.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let v={sidebar_position:2,sidebar_label:"\u4E0B\u8F7D"},k="\u4E0B\u8F7D",_={},$=[];function N(e){let r={h1:"h1",header:"header",p:"p",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.header,{children:(0,i.jsx)(r.h1,{id:"\u4E0B\u8F7D",children:"\u4E0B\u8F7D"})}),"\n",(0,i.jsx)(r.p,{children:"\u6309\u64CD\u4F5C\u7CFB\u7EDF\u4E0E\u67B6\u6784\u9009\u62E9\u5BF9\u5E94\u5B89\u88C5\u5305"}),"\n",(0,i.jsx)(f,{})]})}function I(e={}){let{wrapper:r}={...(0,o.R)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(N,{...e})}):N(e)}},7008(e,r,n){n.d(r,{R:()=>a,x:()=>d});var s=n(1763);let i={},o=s.createContext(i);function a(e){let r=s.useContext(o);return s.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.6756795b.js b/assets/js/main.14ead4ee.js similarity index 97% rename from assets/js/main.6756795b.js rename to assets/js/main.14ead4ee.js index 4eb609e..a5da212 100644 --- a/assets/js/main.6756795b.js +++ b/assets/js/main.14ead4ee.js @@ -24,7 +24,7 @@ function insertBanner() { : actualHomePagePath + '/'; suggestionContainer.textContent = suggestedBaseUrl; } -`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/docs/community","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/docs/features/env","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/docs/quickstart","sidebar":"docsSidebar"},{"id":"roadmap","path":"/orbien/docs/roadmap","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/docs/intro","label":"\u4ECB\u7ECD"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.1.0-beta.1","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,C=(0,s.A)(A),T=A?.replace("pathname://",""),P=void 0!==T?(y=T,h&&y.startsWith("/")?S(y):y):void 0;"hash"===x&&P?.startsWith("./")&&(P=P?.slice(1)),P&&C&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&C&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,C]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!C||!D||I&&"hash"!==x;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&C&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". +`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/docs/community","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/docs/features/env","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/docs/quickstart","sidebar":"docsSidebar"},{"id":"roadmap","path":"/orbien/docs/roadmap","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/docs/intro","label":"\u4ECB\u7ECD"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.1.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,C=(0,s.A)(A),T=A?.replace("pathname://",""),P=void 0!==T?(y=T,h&&y.startsWith("/")?S(y):y):void 0;"hash"===x&&P?.startsWith("./")&&(P=P?.slice(1)),P&&C&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&C&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,C]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!C||!D||I&&"hash"!==x;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!C&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&C&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". Available sidebar ids are: - ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function y(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". Available doc ids are: diff --git a/assets/js/runtime~main.e5964ef8.js b/assets/js/runtime~main.e521fa99.js similarity index 57% rename from assets/js/runtime~main.e5964ef8.js rename to assets/js/runtime~main.e521fa99.js index 76297e8..d05b1e1 100644 --- a/assets/js/runtime~main.e5964ef8.js +++ b/assets/js/runtime~main.e521fa99.js @@ -1 +1 @@ -(()=>{"use strict";var e,r,t,a,f,o,c,d={},n={};function b(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={exports:{}};return d[e].call(t.exports,t,t.exports,b),t.exports}b.m=d,b.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return b.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(t,a){if(1&a&&(t=this(t)),8&a||"object"==typeof t&&t&&(4&a&&t.__esModule||16&a&&"function"==typeof t.then))return t;var f=Object.create(null);b.r(f);var o={};e=e||[null,r({}),r([]),r(r)];for(var c=2&a&&t;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach(e=>{o[e]=()=>t[e]});return o.default=()=>t,b.d(f,o),f},b.d=(e,r)=>{for(var t in r)b.o(r,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((r,t)=>(b.f[t](e,r),r),[])),b.u=e=>"assets/js/"+(({106:"17896441",133:"90358f02",135:"ac5280f2",142:"0dffb83e",217:"0e384e19",218:"05d4cacb",229:"cc002db1",267:"ab38dbfe",326:"fe98809a",356:"5ef0e9d6",364:"fd368041",394:"def3d52a",395:"37f66e80",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",499:"8070e160",503:"93234bd6",521:"72e9da6a",56:"a7456010",575:"a7bd4aaa",590:"46875d5c",630:"cc0a2bf3",646:"6b77a8a0",668:"5e95c892",688:"cac2e989",69:"97658992",707:"c1cdd282",747:"aba21aa0",785:"a94703ab",795:"9a00739f",817:"b2d27f24",896:"51876da0"})[e]||e)+"."+({106:"6c48d3c2",133:"49d265ea",135:"753ae7d0",142:"23cbd0dd",217:"82c87d74",218:"7119d8a1",229:"bb591837",267:"250a4996",326:"94f05a50",356:"bc7a97b0",364:"d1053280",394:"e1de427f",395:"567f6d20",406:"7afbacb1",41:"e45ae651",411:"5cd6a9d0",440:"64c89bb0",452:"26956a5e",475:"9c4028b5",499:"c6dc6b27",503:"aa1d5641",521:"910b293b",56:"b47ace4d",575:"96f1510e",590:"4f76e68a",627:"5a86db8b",630:"8406ff27",646:"439d4f24",668:"61b67e6b",688:"a7483bbf",69:"d0b6799d",707:"3c5ba703",747:"66a74c66",785:"b81930da",795:"1101e6b4",817:"8315e086",896:"b64acab5"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},b.l=function(e,r,a,f){if(t[e])return void t[e].push(r);if(void 0!==a)for(var o,c,d=document.getElementsByTagName("script"),n=0;n{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],b.O=(e,r,t,f)=>{if(r){f=f||0;for(var o=a.length;o>0&&a[o-1][2]>f;o--)a[o]=a[o-1];a[o]=[r,t,f];return}for(var c=1/0,o=0;o=f)&&Object.keys(b.O).every(e=>b.O[e](r[n]))?r.splice(n--,1):(d=!1,f"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5d22870:"69",edefc60b:"41",a7456010:"56","90358f02":"133",ac5280f2:"135","0dffb83e":"142","0e384e19":"217","05d4cacb":"218",cc002db1:"229",ab38dbfe:"267",fe98809a:"326","5ef0e9d6":"356",fd368041:"364",def3d52a:"394","37f66e80":"395","67e4f9fb":"411",e6f0c936:"440","1df93b7f":"452",f325f636:"475","8070e160":"499","93234bd6":"503","72e9da6a":"521",a7bd4aaa:"575","46875d5c":"590",cc0a2bf3:"630","6b77a8a0":"646","5e95c892":"668",cac2e989:"688",c1cdd282:"707",aba21aa0:"747",a94703ab:"785","9a00739f":"795",b2d27f24:"817","51876da0":"896"})[e]||e,b.p+b.u(e)},f={14:0,783:0},b.f.j=function(e,r){var t=b.o(f,e)?f[e]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(14|783)$/.test(e))f[e]=0;else{var a=new Promise((r,a)=>t=f[e]=[r,a]);r.push(t[2]=a);var o=b.p+b.u(e),c=Error();b.l(o,function(r){if(b.o(f,e)&&(0!==(t=f[e])&&(f[e]=void 0),t)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+a+": "+o+")",c.name="ChunkLoadError",c.type=a,c.request=o,t[1](c)}},"chunk-"+e,e)}},b.O.j=e=>0===f[e],o=(e,r)=>{var t,a,o=r[0],c=r[1],d=r[2],n=0;if(o.some(e=>0!==f[e])){for(t in c)b.o(c,t)&&(b.m[t]=c[t]);if(d)var i=d(b)}for(e&&e(r);n{"use strict";var e,r,t,a,o,f,c,d={},n={};function b(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={exports:{}};return d[e].call(t.exports,t,t.exports,b),t.exports}b.m=d,b.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return b.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(t,a){if(1&a&&(t=this(t)),8&a||"object"==typeof t&&t&&(4&a&&t.__esModule||16&a&&"function"==typeof t.then))return t;var o=Object.create(null);b.r(o);var f={};e=e||[null,r({}),r([]),r(r)];for(var c=2&a&&t;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach(e=>{f[e]=()=>t[e]});return f.default=()=>t,b.d(o,f),o},b.d=(e,r)=>{for(var t in r)b.o(r,t)&&!b.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((r,t)=>(b.f[t](e,r),r),[])),b.u=e=>"assets/js/"+(({106:"17896441",133:"90358f02",135:"ac5280f2",142:"0dffb83e",217:"0e384e19",218:"05d4cacb",229:"cc002db1",267:"ab38dbfe",326:"fe98809a",356:"5ef0e9d6",364:"fd368041",394:"def3d52a",395:"37f66e80",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",499:"8070e160",503:"93234bd6",521:"72e9da6a",56:"a7456010",575:"a7bd4aaa",590:"46875d5c",630:"cc0a2bf3",646:"6b77a8a0",668:"5e95c892",688:"cac2e989",69:"97658992",707:"c1cdd282",747:"aba21aa0",785:"a94703ab",795:"9a00739f",817:"b2d27f24",896:"51876da0"})[e]||e)+"."+({106:"6c48d3c2",133:"49d265ea",135:"753ae7d0",142:"23cbd0dd",217:"82c87d74",218:"7119d8a1",229:"bb591837",267:"250a4996",326:"94f05a50",356:"bc7a97b0",364:"d1053280",394:"e1de427f",395:"567f6d20",406:"7afbacb1",41:"e45ae651",411:"5cd6a9d0",440:"e1a22c75",452:"26956a5e",475:"9c4028b5",499:"c6dc6b27",503:"aa1d5641",521:"910b293b",56:"b47ace4d",575:"96f1510e",590:"4f76e68a",627:"5a86db8b",630:"8406ff27",646:"869a7de1",668:"61b67e6b",688:"a7483bbf",69:"d0b6799d",707:"3c5ba703",747:"66a74c66",785:"b81930da",795:"1101e6b4",817:"8315e086",896:"b64acab5"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},b.l=function(e,r,a,o){if(t[e])return void t[e].push(r);if(void 0!==a)for(var f,c,d=document.getElementsByTagName("script"),n=0;n{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a=[],b.O=(e,r,t,o)=>{if(r){o=o||0;for(var f=a.length;f>0&&a[f-1][2]>o;f--)a[f]=a[f-1];a[f]=[r,t,o];return}for(var c=1/0,f=0;f=o)&&Object.keys(b.O).every(e=>b.O[e](r[n]))?r.splice(n--,1):(d=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5d22870:"69",edefc60b:"41",a7456010:"56","90358f02":"133",ac5280f2:"135","0dffb83e":"142","0e384e19":"217","05d4cacb":"218",cc002db1:"229",ab38dbfe:"267",fe98809a:"326","5ef0e9d6":"356",fd368041:"364",def3d52a:"394","37f66e80":"395","67e4f9fb":"411",e6f0c936:"440","1df93b7f":"452",f325f636:"475","8070e160":"499","93234bd6":"503","72e9da6a":"521",a7bd4aaa:"575","46875d5c":"590",cc0a2bf3:"630","6b77a8a0":"646","5e95c892":"668",cac2e989:"688",c1cdd282:"707",aba21aa0:"747",a94703ab:"785","9a00739f":"795",b2d27f24:"817","51876da0":"896"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,r){var t=b.o(o,e)?o[e]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var a=new Promise((r,a)=>t=o[e]=[r,a]);r.push(t[2]=a);var f=b.p+b.u(e),c=Error();b.l(f,function(r){if(b.o(o,e)&&(0!==(t=o[e])&&(o[e]=void 0),t)){var a=r&&("load"===r.type?"missing":r.type),f=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+a+": "+f+")",c.name="ChunkLoadError",c.type=a,c.request=f,t[1](c)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],f=(e,r)=>{var t,a,f=r[0],c=r[1],d=r[2],n=0;if(f.some(e=>0!==o[e])){for(t in c)b.o(c,t)&&(b.m[t]=c[t]);if(d)var i=d(b)}for(e&&e(r);n社区和贡献 | Orbien +社区和贡献 | Orbien

社区和贡献

diff --git a/docs/docker.html b/docs/docker.html index 201aaf2..affe97e 100644 --- a/docs/docker.html +++ b/docs/docker.html @@ -1,4 +1,4 @@ -Docker 安装 | Orbien +Docker 安装 | Orbien

Docker 安装

diff --git a/docs/download.html b/docs/download.html index 7d19653..11a5173 100644 --- a/docs/download.html +++ b/docs/download.html @@ -1,6 +1,6 @@ -下载 | Orbien +下载 | Orbien

下载

按操作系统与架构选择对应安装包

-
v3.1.0-beta.1所有版本
操作系统架构libc服务端命令行客户端桌面客户端说明
Linuxamd64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
amd64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
arm64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
arm64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
FreeBSDamd64tar.gztar.gz
Windowsamd64tar.gztar.gzzip
arm64tar.gztar.gzzip
macOSamd64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行
arm64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行

Docker

  • orbien-serverserver
    docker pull ghcr.io/orbien-org/orbien-server:latest
  • orbienclient
    docker pull ghcr.io/orbien-org/orbien:latest
\ No newline at end of file +
操作系统架构libc服务端命令行客户端桌面客户端说明
Linuxamd64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
amd64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
arm64gnugnu · tar.gzgnu · tar.gzdeb动态链接 glibc
arm64muslmusl · tar.gzmusl · tar.gz静态链接,兼容旧 glibc
FreeBSDamd64tar.gztar.gz
Windowsamd64tar.gztar.gzzip
arm64tar.gztar.gzzip
macOSamd64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行
arm64tar.gztar.gzdmg如遇拦截,于系统设置中允许运行

Docker

  • orbien-serverserver
    docker pull ghcr.io/orbien-org/orbien-server:latest
  • orbienclient
    docker pull ghcr.io/orbien-org/orbien:latest
\ No newline at end of file diff --git a/docs/features/authentication.html b/docs/features/authentication.html index 54647a6..57e4a6f 100644 --- a/docs/features/authentication.html +++ b/docs/features/authentication.html @@ -1,4 +1,4 @@ -身份认证 | Orbien +身份认证 | Orbien

身份认证

diff --git a/docs/features/bandwidth.html b/docs/features/bandwidth.html index 90b96dd..5ee92b7 100644 --- a/docs/features/bandwidth.html +++ b/docs/features/bandwidth.html @@ -1,4 +1,4 @@ -带宽限制 | Orbien +带宽限制 | Orbien

带宽限制

diff --git a/docs/features/dashboard.html b/docs/features/dashboard.html index 686fb40..41e88da 100644 --- a/docs/features/dashboard.html +++ b/docs/features/dashboard.html @@ -1,4 +1,4 @@ -管理界面 | Orbien +管理界面 | Orbien

管理界面

diff --git a/docs/features/env.html b/docs/features/env.html index 113df6e..c113381 100644 --- a/docs/features/env.html +++ b/docs/features/env.html @@ -1,4 +1,4 @@ -环境变量 | Orbien +环境变量 | Orbien

环境变量

diff --git a/docs/features/public-bind.html b/docs/features/public-bind.html index 56b9a1a..9be6799 100644 --- a/docs/features/public-bind.html +++ b/docs/features/public-bind.html @@ -1,4 +1,4 @@ -对外监听地址 | Orbien +对外监听地址 | Orbien

对外监听地址

diff --git a/docs/features/real-ip.html b/docs/features/real-ip.html index c233376..65a9af0 100644 --- a/docs/features/real-ip.html +++ b/docs/features/real-ip.html @@ -1,4 +1,4 @@ -获取真实 IP | Orbien +获取真实 IP | Orbien

获取真实 IP

diff --git a/docs/integrations/springboot.html b/docs/integrations/springboot.html index b14f8fb..969e543 100644 --- a/docs/integrations/springboot.html +++ b/docs/integrations/springboot.html @@ -1,4 +1,4 @@ -Spring Boot 集成 | Orbien +Spring Boot 集成 | Orbien

Spring Boot 集成

@@ -8,7 +8,7 @@
  • 传输层:仅 TCP
  • 不支持 TCP 多路复用:orbien.tcp-mux 必须为 false,服务端也需 [transport].tcpMux = false(服务端默认开启多路复用,与 Java 客户端联调时需显式关闭)
  • -
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.1.0-beta.1</version>
    </dependency>
    +
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.1.0</version>
    </dependency>

    最小配置​

    local-port / name 可省略:未填时分别使用 Spring Boot Web 端口与 spring.application.name(或 orbien-{protocol})。

    # application.yml
    orbien:
    enabled: true
    server-addr: 127.0.0.1
    # token: YOUR_TOKEN # 可选
    tunnel:
    protocol: http
    domains:
    - web.domain.com
    diff --git a/docs/intro.html b/docs/intro.html index 100d4c1..0c5ad29 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -1,4 +1,4 @@ -介绍 | Orbien +介绍 | Orbien

    介绍

    diff --git a/docs/license.html b/docs/license.html index f995454..1c5cc58 100644 --- a/docs/license.html +++ b/docs/license.html @@ -1,4 +1,4 @@ -许可证 | Orbien +许可证 | Orbien

    许可证

    diff --git a/docs/performance.html b/docs/performance.html index 65cb0ce..dc5df25 100644 --- a/docs/performance.html +++ b/docs/performance.html @@ -1,4 +1,4 @@ -性能测试 | Orbien +性能测试 | Orbien

    性能测试

    diff --git a/docs/quickstart.html b/docs/quickstart.html index dc110cf..a933800 100644 --- a/docs/quickstart.html +++ b/docs/quickstart.html @@ -1,4 +1,4 @@ -快速开始 | Orbien +快速开始 | Orbien

    快速开始

    diff --git a/docs/roadmap.html b/docs/roadmap.html index 236ab5f..e83a8a7 100644 --- a/docs/roadmap.html +++ b/docs/roadmap.html @@ -1,4 +1,4 @@ -路线图 | Orbien +路线图 | Orbien

    路线图

    diff --git a/docs/transport/connect-pool.html b/docs/transport/connect-pool.html index 72fef1b..7197ab8 100644 --- a/docs/transport/connect-pool.html +++ b/docs/transport/connect-pool.html @@ -1,4 +1,4 @@ -连接池 | Orbien +连接池 | Orbien

    连接池

    diff --git a/docs/transport/protocol/kcp.html b/docs/transport/protocol/kcp.html index e83d72a..de85f35 100644 --- a/docs/transport/protocol/kcp.html +++ b/docs/transport/protocol/kcp.html @@ -1,4 +1,4 @@ -KCP | Orbien +KCP | Orbien

    KCP

    diff --git a/docs/transport/protocol/quic.html b/docs/transport/protocol/quic.html index 30e88e5..f0e277b 100644 --- a/docs/transport/protocol/quic.html +++ b/docs/transport/protocol/quic.html @@ -1,4 +1,4 @@ -QUIC | Orbien +QUIC | Orbien

    QUIC

    diff --git a/docs/transport/protocol/tcp.html b/docs/transport/protocol/tcp.html index 9b79aea..60be393 100644 --- a/docs/transport/protocol/tcp.html +++ b/docs/transport/protocol/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/docs/transport/protocol/websocket.html b/docs/transport/protocol/websocket.html index b76e33c..1fa76af 100644 --- a/docs/transport/protocol/websocket.html +++ b/docs/transport/protocol/websocket.html @@ -1,4 +1,4 @@ -WebSocket | Orbien +WebSocket | Orbien

    WebSocket

    diff --git a/docs/transport/tcp-mux.html b/docs/transport/tcp-mux.html index c9befa0..a408e3c 100644 --- a/docs/transport/tcp-mux.html +++ b/docs/transport/tcp-mux.html @@ -1,4 +1,4 @@ -TCP 多路复用 | Orbien +TCP 多路复用 | Orbien

    TCP 多路复用

    diff --git a/docs/transport/tls.html b/docs/transport/tls.html index 3012e49..71d21e4 100644 --- a/docs/transport/tls.html +++ b/docs/transport/tls.html @@ -1,4 +1,4 @@ -TLS | Orbien +TLS | Orbien

    TLS

    diff --git a/docs/tunnels/domains.html b/docs/tunnels/domains.html index 35fa0a9..8b929b9 100644 --- a/docs/tunnels/domains.html +++ b/docs/tunnels/domains.html @@ -1,4 +1,4 @@ -域名 | Orbien +域名 | Orbien

    域名

    diff --git a/docs/tunnels/http.html b/docs/tunnels/http.html index 484aa7d..53e9566 100644 --- a/docs/tunnels/http.html +++ b/docs/tunnels/http.html @@ -1,4 +1,4 @@ -HTTP | Orbien +HTTP | Orbien

    HTTP

    diff --git a/docs/tunnels/https.html b/docs/tunnels/https.html index 529c90d..416928a 100644 --- a/docs/tunnels/https.html +++ b/docs/tunnels/https.html @@ -1,4 +1,4 @@ -HTTPS | Orbien +HTTPS | Orbien

    HTTPS

    diff --git a/docs/tunnels/tcp.html b/docs/tunnels/tcp.html index 7d1238e..48e6197 100644 --- a/docs/tunnels/tcp.html +++ b/docs/tunnels/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/docs/tunnels/udp.html b/docs/tunnels/udp.html index 8203d57..fdbb5d3 100644 --- a/docs/tunnels/udp.html +++ b/docs/tunnels/udp.html @@ -1,4 +1,4 @@ -UDP | Orbien +UDP | Orbien

    UDP

    diff --git a/en/404.html b/en/404.html index ca99175..5465775 100644 --- a/en/404.html +++ b/en/404.html @@ -1,4 +1,4 @@ -Page Not Found | Orbien +Page Not Found | Orbien

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    \ No newline at end of file diff --git a/en/assets/js/523c1e1a.bf66c324.js b/en/assets/js/523c1e1a.1ac3e32b.js similarity index 72% rename from en/assets/js/523c1e1a.bf66c324.js rename to en/assets/js/523c1e1a.1ac3e32b.js index dd5e063..241faf7 100644 --- a/en/assets/js/523c1e1a.bf66c324.js +++ b/en/assets/js/523c1e1a.1ac3e32b.js @@ -1,2 +1,2 @@ "use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["301"],{790(e,n,r){r.r(n),r.d(n,{metadata:()=>t,default:()=>P,frontMatter:()=>k,contentTitle:()=>I,toc:()=>_,assets:()=>S});var t=JSON.parse('{"id":"integrations/springboot","title":"Spring Boot Integration","description":"Orbien provides an embeddable Java client for Spring Boot. Current scope:","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/integrations/springboot.mdx","sourceDirName":"integrations","slug":"/integrations/springboot","permalink":"/orbien/en/docs/integrations/springboot","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/integrations/springboot.mdx","tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"sidebar_position":1,"sidebar_label":"Spring Boot"},"sidebar":"docsSidebar","previous":{"title":"Environment Variables","permalink":"/orbien/en/docs/features/env"},"next":{"title":"Performance","permalink":"/orbien/en/docs/performance"}}'),o=r(1987),a=r(7008),i=r(1763),l=r(3526),s=r(1009),c=r(6532),u=r(9879),d=r(9327),p=r(8292),h=r(8184);function f({value:e,tabValues:n}){return n.some(n=>n.value===e)}let m=(0,i.createContext)(null);function b(){let e=i.useContext(m);if(!e)throw Error("useTabsContext() must be used within a Tabs component");return e}function g(e){return(0,o.jsx)(m.Provider,{value:e.value,children:e.children})}var x=r(8522),v=r(8261);function j({className:e}){let{selectedValue:n,selectValue:r,tabValues:t,block:a}=b(),i=[],{blockElementScrollPositionUntilNextRender:s}=(0,x.a_)(),c=e=>{let o=e.currentTarget,a=t[i.indexOf(o)].value;a!==n&&(s(o),r(a))},u=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{let r=i.indexOf(e.currentTarget)+1;n=i[r]??i[0];break}case"ArrowLeft":{let r=i.indexOf(e.currentTarget)-1;n=i[r]??i[i.length-1]}}n?.focus()};return(0,o.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},e),children:t.map(({value:e,label:r,attributes:t})=>(0,o.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{i.push(e)},onKeyDown:u,onClick:c,...t,className:(0,l.A)("tabs__item","tabItem_Xg_G",t?.className,{"tabs__item--active":n===e}),children:r??e},e))})}function y({children:e}){return(0,o.jsx)("div",{className:"margin-top--md",children:e})}function w({className:e,children:n}){return(0,o.jsxs)("div",{className:(0,l.A)(s.G.tabs.container,"tabs-container","tabList_f3wh"),children:[(0,o.jsx)(j,{className:e}),(0,o.jsx)(y,{children:n})]})}function T(e){var n;let r=(0,v.A)(),t=function(e){let n,{defaultValue:r,queryString:t=!1,groupId:o}=e,a=function(e){let{values:n,children:r}=e;return(0,i.useMemo)(()=>{let e=n??i.Children.toArray(r).flatMap(e=>{if(!e)return[];if((0,i.isValidElement)(e)&&function(e){let{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return[e];let n="string"==typeof e.type?e.type:e.type.name;throw Error(`Docusaurus error: Bad child <${n}>: all children of the component should be , and every should have a unique "value" prop. -If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!f({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[m,b]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[g,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=f({value:n=m??g,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!f({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),b(e),x(e)},[b,x,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(g,{value:t,children:(0,o.jsx)(w,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function C({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function N({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=b(),i=r===t;return!i&&a?null:(0,o.jsx)(C,{className:n,hidden:!i,children:e})}let k={sidebar_position:1,sidebar_label:"Spring Boot"},I="Spring Boot Integration",S={},_=[{value:"Minimal configuration",id:"minimal-configuration",level:2},{value:"Full reference",id:"full-reference",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-integration",children:"Spring Boot Integration"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," provides an embeddable Java client for Spring Boot. Current scope:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Tunnel protocols: ",(0,o.jsx)(n.strong,{children:"TCP"})," and ",(0,o.jsx)(n.strong,{children:"HTTP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:["Transport: ",(0,o.jsx)(n.strong,{children:"TCP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"No TCP multiplexing"}),": set ",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," to ",(0,o.jsx)(n.code,{children:"false"}),", and set ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"})," on the server (multiplexing is on by default; turn it off when using the Java client)"]}),"\n"]}),"\n",(0,o.jsxs)(T,{children:[(0,o.jsx)(N,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.1.0-beta.1\n\n"})})}),(0,o.jsx)(N,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.1.0-beta.1")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"minimal-configuration",children:"Minimal configuration"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," and ",(0,o.jsx)(n.code,{children:"name"})," are optional. When omitted, the starter uses the Spring Boot web port and ",(0,o.jsx)(n.code,{children:"spring.application.name"})," (or ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),")."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n # token: YOUR_TOKEN # optional\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n"})}),"\n",(0,o.jsx)(n.p,{children:"Disable multiplexing on the server, for example:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # disable TCP multiplexing\n'})}),"\n",(0,o.jsx)(n.h2,{id:"full-reference",children:"Full reference"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n server-port: 9527\n token: YOUR_TOKEN\n tcp-mux: false # must be false and match the server\n pool-count: 1 # data-connection pool size requested at login\n heartbeat-interval-secs: 30\n user: spring-boot-demo # optional; shown on the dashboard\n # session-id: "" # optional; if empty, restore from session-id-file or generate\n # session-id-file: "" # optional; if empty, use the default path under the user home\n tunnel:\n name: web-demo # optional\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # optional; defaults to the Spring Boot listen port\n # remote-port: 9000 # required when protocol=tcp\n domains: # required when protocol=http\n - web.domain.com\n'})})]})}function P(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file +If you do not want to pass on a "value" prop to the direct children of , you can also pass an explicit prop.`)}).map(({props:{value:e,label:n,attributes:r,default:t}})=>({value:e,label:n,attributes:r,default:t})),t=(0,p.XI)(e,(e,n)=>e.value===n.value);if(t.length>0)throw Error(`Docusaurus error: Duplicate values "${t.map(e=>`'${e.value}'`).join(", ")}" found in . Every value needs to be unique.`);return e},[n,r])}(e),[l,s]=(0,i.useState)(()=>(function({defaultValue:e,tabValues:n}){if(0===n.length)throw Error("Docusaurus error: the component requires at least one children component");if(e){if(!f({value:e,tabValues:n}))throw Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}let r=n.find(e=>e.default)??n[0];if(!r)throw Error("Unexpected error: 0 tabValues");return r.value})({defaultValue:r,tabValues:a})),[m,b]=function({queryString:e=!1,groupId:n}){let r=(0,c.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,d.aZ)(t),(0,i.useCallback)(e=>{if(!t)return;let n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}({queryString:t,groupId:o}),[g,x]=function({groupId:e}){let n=e?`docusaurus.tab.${e}`:null,[r,t]=(0,h.Dv)(n);return[r,(0,i.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:o}),v=f({value:n=m??g,tabValues:a})?n:null;return(0,u.A)(()=>{v&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!f({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(e),b(e),x(e)},[b,x,a]),tabValues:a,lazy:e.lazy??!1,block:e.block??!1}}(e);return(0,o.jsx)(g,{value:t,children:(0,o.jsx)(w,{className:e.className,children:(n=e.children,i.Children.toArray(n).filter(e=>"\n"!==e))})},String(r))}function C({children:e,className:n,hidden:r}){return(0,o.jsx)("div",{role:"tabpanel",className:(0,l.A)("tabItem_vIHf",n),hidden:r,children:e})}function N({children:e,className:n,value:r}){let{selectedValue:t,lazy:a}=b(),i=r===t;return!i&&a?null:(0,o.jsx)(C,{className:n,hidden:!i,children:e})}let k={sidebar_position:1,sidebar_label:"Spring Boot"},I="Spring Boot Integration",S={},_=[{value:"Minimal configuration",id:"minimal-configuration",level:2},{value:"Full reference",id:"full-reference",level:2}];function E(e){let n={code:"code",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"spring-boot-integration",children:"Spring Boot Integration"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Orbien"})," provides an embeddable Java client for Spring Boot. Current scope:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Tunnel protocols: ",(0,o.jsx)(n.strong,{children:"TCP"})," and ",(0,o.jsx)(n.strong,{children:"HTTP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:["Transport: ",(0,o.jsx)(n.strong,{children:"TCP"})," only"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"No TCP multiplexing"}),": set ",(0,o.jsx)(n.code,{children:"orbien.tcp-mux"})," to ",(0,o.jsx)(n.code,{children:"false"}),", and set ",(0,o.jsx)(n.code,{children:"[transport].tcpMux = false"})," on the server (multiplexing is on by default; turn it off when using the Java client)"]}),"\n"]}),"\n",(0,o.jsxs)(T,{children:[(0,o.jsx)(N,{value:"Maven",label:"Maven",default:!0,children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-xml",children:"\n io.github.lxien\n orbien-spring-boot-starter\n 3.1.0\n\n"})})}),(0,o.jsx)(N,{value:"Gradle",label:"Gradle",children:(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-groovy",children:'implementation("io.github.lxien:orbien-spring-boot-starter:3.1.0")\n'})})})]}),"\n",(0,o.jsx)(n.h2,{id:"minimal-configuration",children:"Minimal configuration"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"local-port"})," and ",(0,o.jsx)(n.code,{children:"name"})," are optional. When omitted, the starter uses the Spring Boot web port and ",(0,o.jsx)(n.code,{children:"spring.application.name"})," (or ",(0,o.jsx)(n.code,{children:"orbien-{protocol}"}),")."]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n # token: YOUR_TOKEN # optional\n tunnel:\n protocol: http\n domains:\n - web.domain.com\n"})}),"\n",(0,o.jsx)(n.p,{children:"Disable multiplexing on the server, for example:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-toml",children:'# orbien-server.toml\nlisten = "0.0.0.0:9527"\nhttpGwPort = 80\n\n[transport]\ntcpMux = false # disable TCP multiplexing\n'})}),"\n",(0,o.jsx)(n.h2,{id:"full-reference",children:"Full reference"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:'# application.yml\norbien:\n enabled: true\n server-addr: 127.0.0.1\n server-port: 9527\n token: YOUR_TOKEN\n tcp-mux: false # must be false and match the server\n pool-count: 1 # data-connection pool size requested at login\n heartbeat-interval-secs: 30\n user: spring-boot-demo # optional; shown on the dashboard\n # session-id: "" # optional; if empty, restore from session-id-file or generate\n # session-id-file: "" # optional; if empty, use the default path under the user home\n tunnel:\n name: web-demo # optional\n protocol: http # tcp | http\n local-ip: 127.0.0.1\n # local-port: 8080 # optional; defaults to the Spring Boot listen port\n # remote-port: 9000 # required when protocol=tcp\n domains: # required when protocol=http\n - web.domain.com\n'})})]})}function P(e={}){let{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(E,{...e})}):E(e)}},7008(e,n,r){r.d(n,{R:()=>i,x:()=>l});var t=r(1763);let o={},a=t.createContext(o);function i(e){let n=t.useContext(a);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b3adb838.2eab55db.js b/en/assets/js/b3adb838.2eab55db.js deleted file mode 100644 index 44136d4..0000000 --- a/en/assets/js/b3adb838.2eab55db.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["431"],{3323(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>I,frontMatter:()=>k,contentTitle:()=>v,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"Download","description":"Choose the package for your OS and architecture","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/en/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Download"},"sidebar":"docsSidebar","previous":{"title":"Introduction","permalink":"/orbien/en/docs/intro"},"next":{"title":"Quick Start","permalink":"/orbien/en/docs/quickstart"}}'),o=r(1987),i=r(7008),a=r(1763),d=r(3526),l=r(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},g=[{id:"server",name:"orbien-server",label:(0,o.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,o.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,o.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function j(e,n){if("orbien-desktop"!==e)return"tar.gz";switch(n){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,n]=(0,a.useState)("3.1.0-beta.1"),[r,s]=(0,a.useState)(null),[i,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let r=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!r.ok)return;let o=await r.json();if(e)return;let i=o.tag_name?.replace(/^v/,"");i&&n(i),o.assets&&s(new Set(o.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let k=(0,a.useMemo)(()=>{let e=new Map,n=0;for(;n(0,o.jsx)("th",{children:e.label},e.id)),(0,o.jsx)("th",{children:(0,o.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,o.jsx)("tbody",{children:x.map((n,s)=>{let a=k.get(s),t=void 0!==a,c="linux"===n.os?n.libc:void 0;return(0,o.jsxs)("tr",{className:(0,d.A)(i===n.os&&"rowHighlight_Rqix"),children:[t?(0,o.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[n.os]}):null,(0,o.jsx)("td",{children:(0,o.jsx)("code",{children:w[n.arch]})}),(0,o.jsx)("td",{children:c?(0,o.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),g.map(s=>{var i,a,d,l,t,u,m,x,p,w;let g,f,k="orbien-desktop"===s.name,v=k?"linux"===n.os&&"gnu"===n.libc?"gnu":void 0:c,_=(i=s.name,a=n.os,d=n.arch,b.has(v?`${i}|${a}|${d}|${v}`:`${i}|${a}|${d}`)),$=(l=s.name,t=n.os,u=k?void 0:c,g=j(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${g}`:g),N=(m=s.name,x=n.os,p=n.arch,w=k?void 0:c,f=j(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!r||r.has(N);return(0,o.jsx)("td",{children:_&&I?(0,o.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,o.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(n.noteId)})]},`${n.os}-${n.arch}-${n.libc??"default"}`)})})]})}),(0,o.jsxs)("div",{className:"docker_YIhP",children:[(0,o.jsx)("h3",{children:"Docker"}),(0,o.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien-server"}),(0,o.jsx)("span",{className:u,children:"server"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien"}),(0,o.jsx)("span",{className:u,children:"client"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let k={sidebar_position:2,sidebar_label:"Download"},v="Download",_={},$=[];function N(e){let n={h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"download",children:"Download"})}),"\n",(0,o.jsx)(n.p,{children:"Choose the package for your OS and architecture"}),"\n",(0,o.jsx)(f,{})]})}function I(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(N,{...e})}):N(e)}},7008(e,n,r){r.d(n,{R:()=>a,x:()=>d});var s=r(1763);let o={},i=s.createContext(o);function a(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b3adb838.632710fc.js b/en/assets/js/b3adb838.632710fc.js new file mode 100644 index 0000000..5cd8b1f --- /dev/null +++ b/en/assets/js/b3adb838.632710fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkorbien_docs=self.webpackChunkorbien_docs||[]).push([["431"],{3323(e,n,r){r.r(n),r.d(n,{metadata:()=>s,default:()=>I,frontMatter:()=>k,contentTitle:()=>v,toc:()=>$,assets:()=>_});var s=JSON.parse('{"id":"download","title":"Download","description":"Choose the package for your OS and architecture","source":"@site/i18n/en/docusaurus-plugin-content-docs/current/download.mdx","sourceDirName":".","slug":"/download","permalink":"/orbien/en/docs/download","draft":false,"unlisted":false,"editUrl":"https://github.com/orbien-org/orbien/tree/main/docs/docs/download.mdx","tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2,"sidebar_label":"Download"},"sidebar":"docsSidebar","previous":{"title":"Introduction","permalink":"/orbien/en/docs/intro"},"next":{"title":"Quick Start","permalink":"/orbien/en/docs/quickstart"}}'),o=r(1987),i=r(7008),a=r(1763),d=r(3526),l=r(6475);let t="dockerItem_OmD2",c="dockerMeta_so8T",u="dockerTag_NGl6",m="dockerCmd_lfBm",h="orbien-org/orbien",b=new Set(["orbien-server|linux|amd64|gnu","orbien-server|linux|amd64|musl","orbien-server|linux|arm64|gnu","orbien-server|linux|arm64|musl","orbien-server|windows|amd64","orbien-server|windows|arm64","orbien-server|darwin|amd64","orbien-server|darwin|arm64","orbien-server|freebsd|amd64","orbien|linux|amd64|gnu","orbien|linux|amd64|musl","orbien|linux|arm64|gnu","orbien|linux|arm64|musl","orbien|windows|amd64","orbien|windows|arm64","orbien|darwin|amd64","orbien|darwin|arm64","orbien|freebsd|amd64","orbien-desktop|linux|amd64|gnu","orbien-desktop|linux|arm64|gnu","orbien-desktop|windows|amd64","orbien-desktop|windows|arm64","orbien-desktop|darwin|amd64","orbien-desktop|darwin|arm64"]),x=[{os:"linux",arch:"amd64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"amd64",libc:"musl",noteId:"musl"},{os:"linux",arch:"arm64",libc:"gnu",noteId:"glibc"},{os:"linux",arch:"arm64",libc:"musl",noteId:"musl"},{os:"freebsd",arch:"amd64",noteId:"none"},{os:"windows",arch:"amd64",noteId:"none"},{os:"windows",arch:"arm64",noteId:"none"},{os:"darwin",arch:"amd64",noteId:"macosGatekeeper"},{os:"darwin",arch:"arm64",noteId:"macosGatekeeper"}],p={windows:"Windows",darwin:"macOS",linux:"Linux",freebsd:"FreeBSD"},w={amd64:"amd64",arm64:"arm64"},g=[{id:"server",name:"orbien-server",label:(0,o.jsx)(l.A,{id:"download.product.server",children:"\u670D\u52A1\u7AEF"})},{id:"client",name:"orbien",label:(0,o.jsx)(l.A,{id:"download.product.client",children:"\u547D\u4EE4\u884C\u5BA2\u6237\u7AEF"})},{id:"desktop",name:"orbien-desktop",label:(0,o.jsx)(l.A,{id:"download.product.desktop",children:"\u684C\u9762\u5BA2\u6237\u7AEF"})}];function j(e,n){if("orbien-desktop"!==e)return"tar.gz";switch(n){case"linux":return"deb";case"windows":return"zip";case"darwin":return"dmg";default:return"tar.gz"}}function f(){let[e,n]=(0,a.useState)("3.1.0"),[r,s]=(0,a.useState)(null),[i,f]=(0,a.useState)(null);(0,a.useEffect)(()=>{f(function(){if("u"{let e=!1;return(async()=>{try{let r=await fetch(`https://api.github.com/repos/${h}/releases/latest`,{headers:{Accept:"application/vnd.github+json"}});if(!r.ok)return;let o=await r.json();if(e)return;let i=o.tag_name?.replace(/^v/,"");i&&n(i),o.assets&&s(new Set(o.assets.map(e=>e.name)))}catch{}})(),()=>{e=!0}},[]);let k=(0,a.useMemo)(()=>{let e=new Map,n=0;for(;n(0,o.jsx)("th",{children:e.label},e.id)),(0,o.jsx)("th",{children:(0,o.jsx)(l.A,{id:"download.col.note",children:"\u8BF4\u660E"})})]})}),(0,o.jsx)("tbody",{children:x.map((n,s)=>{let a=k.get(s),t=void 0!==a,c="linux"===n.os?n.libc:void 0;return(0,o.jsxs)("tr",{className:(0,d.A)(i===n.os&&"rowHighlight_Rqix"),children:[t?(0,o.jsx)("td",{rowSpan:a,className:"osCell_btT0",children:p[n.os]}):null,(0,o.jsx)("td",{children:(0,o.jsx)("code",{children:w[n.arch]})}),(0,o.jsx)("td",{children:c?(0,o.jsx)("code",{className:"libcTag_lP5V",children:c}):null}),g.map(s=>{var i,a,d,l,t,u,m,x,p,w;let g,f,k="orbien-desktop"===s.name,v=k?"linux"===n.os&&"gnu"===n.libc?"gnu":void 0:c,_=(i=s.name,a=n.os,d=n.arch,b.has(v?`${i}|${a}|${d}|${v}`:`${i}|${a}|${d}`)),$=(l=s.name,t=n.os,u=k?void 0:c,g=j(l,t),"orbien-desktop"!==l&&u?`${u} \xb7 ${g}`:g),N=(m=s.name,x=n.os,p=n.arch,w=k?void 0:c,f=j(m,x),"orbien-desktop"===m?`${m}_${e}_${x}_${p}.${f}`:w?`${m}_${e}_${x}_${p}_${w}.${f}`:`${m}_${e}_${x}_${p}.${f}`),I=!r||r.has(N);return(0,o.jsx)("td",{children:_&&I?(0,o.jsx)("a",{className:"badge_x6zy",href:`https://github.com/${h}/releases/download/v${e}/${N}`,title:N,rel:"noopener noreferrer",children:$}):null},s.id)}),(0,o.jsx)("td",{className:"note_heJW",children:function(e){switch(e){case"glibc":return(0,l.T)({id:"download.note.glibc",message:"\u52A8\u6001\u94FE\u63A5 glibc"});case"musl":return(0,l.T)({id:"download.note.musl",message:"\u9759\u6001\u94FE\u63A5\uFF0C\u517C\u5BB9\u65E7 glibc"});case"macosGatekeeper":return(0,l.T)({id:"download.note.macosGatekeeper",message:"\u5982\u9047\u62E6\u622A\uFF0C\u4E8E\u7CFB\u7EDF\u8BBE\u7F6E\u4E2D\u5141\u8BB8\u8FD0\u884C"});default:return""}}(n.noteId)})]},`${n.os}-${n.arch}-${n.libc??"default"}`)})})]})}),(0,o.jsxs)("div",{className:"docker_YIhP",children:[(0,o.jsx)("h3",{children:"Docker"}),(0,o.jsxs)("ul",{className:"dockerList_T7jC",children:[(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien-server"}),(0,o.jsx)("span",{className:u,children:"server"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien-server:latest"})]}),(0,o.jsxs)("li",{className:t,children:[(0,o.jsxs)("div",{className:c,children:[(0,o.jsx)("strong",{children:"orbien"}),(0,o.jsx)("span",{className:u,children:"client"})]}),(0,o.jsx)("code",{className:m,children:"docker pull ghcr.io/orbien-org/orbien:latest"})]})]})]})]})}let k={sidebar_position:2,sidebar_label:"Download"},v="Download",_={},$=[];function N(e){let n={h1:"h1",header:"header",p:"p",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"download",children:"Download"})}),"\n",(0,o.jsx)(n.p,{children:"Choose the package for your OS and architecture"}),"\n",(0,o.jsx)(f,{})]})}function I(e={}){let{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(N,{...e})}):N(e)}},7008(e,n,r){r.d(n,{R:()=>a,x:()=>d});var s=r(1763);let o={},i=s.createContext(o);function a(e){let n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/main.3072679f.js b/en/assets/js/main.18292120.js similarity index 97% rename from en/assets/js/main.3072679f.js rename to en/assets/js/main.18292120.js index b1eba59..3b890aa 100644 --- a/en/assets/js/main.3072679f.js +++ b/en/assets/js/main.18292120.js @@ -24,7 +24,7 @@ function insertBanner() { : actualHomePagePath + '/'; suggestionContainer.textContent = suggestedBaseUrl; } -`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/en/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/en/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/en/docs/community","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/en/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/en/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/en/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/en/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/en/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/en/docs/features/env","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/en/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/en/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/en/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/en/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/en/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/en/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/en/docs/quickstart","sidebar":"docsSidebar"},{"id":"roadmap","path":"/orbien/en/docs/roadmap","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/en/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/en/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/en/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/en/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/en/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/en/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/en/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/en/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/en/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/en/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/en/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/en/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/en/docs/intro","label":"Introduction"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.1.0-beta.1","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,S=v.future.experimental_router,{withBaseUrl:x}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,T=(0,s.A)(A),C=A?.replace("pathname://",""),P=void 0!==C?(y=C,h&&y.startsWith("/")?x(y):y):void 0;"hash"===S&&P?.startsWith("./")&&(P=P?.slice(1)),P&&T&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&T&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,T]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!T||!D||I&&"hash"!==S;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!T&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&T&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". +`})})})}function $(){let{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,w.A)(),{pathname:n}=(0,f.zy)();return t&&n===e?(0,r.jsx)(M,{}):null}function B(){let{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,w.A)(),i=(0,k.Ay)(e),{htmlLang:l,direction:s}=o[a];return(0,r.jsxs)(v.A,{children:[(0,r.jsx)("html",{lang:l,dir:s}),(0,r.jsx)("title",{children:t}),(0,r.jsx)("meta",{property:"og:title",content:t}),(0,r.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,r.jsx)("link",{rel:"icon",href:i})]})}var U=n(9047),H=n(8261);function V(){let e=(0,H.A)();return(0,r.jsx)(v.A,{children:(0,r.jsx)("html",{"data-has-hydrated":e})})}let W=(0,p.v)(d.A);function q(){let e=function(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,p.u)(d.A,e.pathname).some(({route:e})=>!0===e.exact))return O.set(e.pathname,e.pathname),e;let t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,f.zy)());return(0,r.jsx)(F,{location:e,children:W})}var G=n(4054);let Y=!function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{let r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})}:function(e){return new Promise((t,n)=>{if("u"t(),r.onerror=()=>n();let a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)})};var K=n(8115);let Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J=Object.freeze({prefetch:e=>!(X()||Z.has(e)||Q.has(e))&&(Q.add(e),Promise.all((0,p.u)(d.A,e).flatMap(e=>{let t;return t=e.route.path,Object.entries(G).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,K.A)(e)))}).map(e=>{let t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch(()=>{}):Promise.resolve()}))),preload:e=>!(X()||Z.has(e))&&(Z.add(e),D(e))});if(u.A.canUseDOM){window.docusaurus=J;let e=document.getElementById("__docusaurus"),t=(0,r.jsx)(i.vd,{children:(0,r.jsx)(function({children:e}){return"hash"===s.default.future.experimental_router?(0,r.jsx)(l.I9,{children:e}):(0,r.jsx)(l.Kd,{children:e})},{children:(0,r.jsx)(function(){return(0,r.jsx)(U.A,{children:(0,r.jsx)(N.l,{children:(0,r.jsxs)(L.x,{children:[(0,r.jsx)(m,{children:(0,r.jsxs)(y,{children:[(0,r.jsx)(B,{}),(0,r.jsx)(P,{}),(0,r.jsx)($,{}),(0,r.jsx)(q,{})]})}),(0,r.jsx)(V,{})]})})})},{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},u=()=>{window.docusaurusRoot?window.docusaurusRoot.render(t):window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n})};D(window.location.pathname).then(()=>{(0,a.startTransition)(u)})}},3235(e,t,n){"use strict";n.d(t,{l:()=>f,o:()=>d});var r=n(1987),a=n(1763),o=n(4784),i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/orbien/en/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/orbien/en/docs","mainDocId":"intro","docs":[{"id":"community","path":"/orbien/en/docs/community","sidebar":"docsSidebar"},{"id":"docker","path":"/orbien/en/docs/docker","sidebar":"docsSidebar"},{"id":"download","path":"/orbien/en/docs/download","sidebar":"docsSidebar"},{"id":"features/authentication","path":"/orbien/en/docs/features/authentication","sidebar":"docsSidebar"},{"id":"features/bandwidth","path":"/orbien/en/docs/features/bandwidth","sidebar":"docsSidebar"},{"id":"features/dashboard","path":"/orbien/en/docs/features/dashboard","sidebar":"docsSidebar"},{"id":"features/env","path":"/orbien/en/docs/features/env","sidebar":"docsSidebar"},{"id":"features/public-bind","path":"/orbien/en/docs/features/public-bind","sidebar":"docsSidebar"},{"id":"features/real-ip","path":"/orbien/en/docs/features/real-ip","sidebar":"docsSidebar"},{"id":"integrations/springboot","path":"/orbien/en/docs/integrations/springboot","sidebar":"docsSidebar"},{"id":"intro","path":"/orbien/en/docs/intro","sidebar":"docsSidebar"},{"id":"license","path":"/orbien/en/docs/license","sidebar":"docsSidebar"},{"id":"performance","path":"/orbien/en/docs/performance","sidebar":"docsSidebar"},{"id":"quickstart","path":"/orbien/en/docs/quickstart","sidebar":"docsSidebar"},{"id":"roadmap","path":"/orbien/en/docs/roadmap","sidebar":"docsSidebar"},{"id":"transport/connect-pool","path":"/orbien/en/docs/transport/connect-pool","sidebar":"docsSidebar"},{"id":"transport/protocol/kcp","path":"/orbien/en/docs/transport/protocol/kcp","sidebar":"docsSidebar"},{"id":"transport/protocol/quic","path":"/orbien/en/docs/transport/protocol/quic","sidebar":"docsSidebar"},{"id":"transport/protocol/tcp","path":"/orbien/en/docs/transport/protocol/tcp","sidebar":"docsSidebar"},{"id":"transport/protocol/websocket","path":"/orbien/en/docs/transport/protocol/websocket","sidebar":"docsSidebar"},{"id":"transport/tcp-mux","path":"/orbien/en/docs/transport/tcp-mux","sidebar":"docsSidebar"},{"id":"transport/tls","path":"/orbien/en/docs/transport/tls","sidebar":"docsSidebar"},{"id":"tunnels/domains","path":"/orbien/en/docs/tunnels/domains","sidebar":"docsSidebar"},{"id":"tunnels/http","path":"/orbien/en/docs/tunnels/http","sidebar":"docsSidebar"},{"id":"tunnels/https","path":"/orbien/en/docs/tunnels/https","sidebar":"docsSidebar"},{"id":"tunnels/tcp","path":"/orbien/en/docs/tunnels/tcp","sidebar":"docsSidebar"},{"id":"tunnels/udp","path":"/orbien/en/docs/tunnels/udp","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/orbien/en/docs/intro","label":"Introduction"}}}}],"breadcrumbs":true}}}'),l=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"zh-Hans":{"label":"\u4E2D\u6587","direction":"ltr","htmlLang":"zh-CN","calendar":"gregory","path":"zh-Hans","translate":false,"url":"https://orbien-org.github.io","baseUrl":"/orbien/"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en","translate":true,"url":"https://orbien-org.github.io","baseUrl":"/orbien/en/"}}}'),s=n(2654),u=JSON.parse('{"docusaurusVersion":"3.10.2","siteVersion":"3.1.0","pluginVersions":{"docusaurus-plugin-css-cascade-layers":{"type":"package","name":"@docusaurus/plugin-css-cascade-layers","version":"3.10.2"},"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.10.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.10.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.10.2"},"docusaurus-plugin-svgr":{"type":"package","name":"@docusaurus/plugin-svgr","version":"3.10.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.10.2"}}}');let c={siteConfig:o.default,siteMetadata:u,globalData:i,i18n:l,codeTranslations:s},d=a.createContext(c);function f({children:e}){return(0,r.jsx)(d.Provider,{value:c,children:e})}},9047(e,t,n){"use strict";n.d(t,{A:()=>m});var r=n(1987),a=n(1763),o=n(4619),i=n(7634),l=n(2455),s=n(6819),u=n(9648);function c({error:e,tryAgain:t}){return(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,r.jsx)("button",{type:"button",onClick:t,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,r.jsx)(d,{error:e})]})}function d({error:e}){let t=(0,l.getErrorCausalChain)(e).map(e=>e.message).join("\n\nCause:\n");return(0,r.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:t})}function f({children:e}){return(0,r.jsx)(u.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:e})}function p({error:e,tryAgain:t}){return(0,r.jsx)(f,{children:(0,r.jsxs)(m,{fallback:()=>(0,r.jsx)(c,{error:e,tryAgain:t}),children:[(0,r.jsx)(i.A,{children:(0,r.jsx)("title",{children:"Page Error"})}),(0,r.jsx)(s.A,{children:(0,r.jsx)(c,{error:e,tryAgain:t})})]})})}class m extends a.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){let{children:e}=this.props,{error:t}=this.state;return t?(this.props.fallback??(e=>(0,r.jsx)(p,{...e})))({error:t,tryAgain:()=>this.setState({error:null})}):e??null}}},4619(e,t,n){"use strict";n.d(t,{A:()=>a});let r="u">typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},7634(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1987);n(1763);var a=n(9883);function o(e){return(0,r.jsx)(a.mg,{...e})}},7364(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(1987),a=n(1763),o=n(5399),i=n(2455),l=n(5484),s=n(2236),u=n(4619),c=n(4216),d=n(319);let f=a.forwardRef(function({isNavLink:e,to:t,href:n,activeClassName:f,isActive:p,"data-noBrokenLinkCheck":m,autoAddBaseUrl:h=!0,...g},b){var y;let{siteConfig:v}=(0,l.A)(),{trailingSlash:w,baseUrl:k}=v,S=v.future.experimental_router,{withBaseUrl:x}=(0,d.hH)(),E=(0,c.A)(),_=(0,a.useRef)(null);(0,a.useImperativeHandle)(b,()=>_.current);let A=t||n,T=(0,s.A)(A),C=A?.replace("pathname://",""),P=void 0!==C?(y=C,h&&y.startsWith("/")?x(y):y):void 0;"hash"===S&&P?.startsWith("./")&&(P=P?.slice(1)),P&&T&&(P=(0,i.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));let O=(0,a.useRef)(!1),L=e?o.k2:o.N_,N=u.A.canUseIntersectionObserver,j=(0,a.useRef)(void 0),R=()=>{O.current||null==P||(window.docusaurus.preload(P),O.current=!0)};(0,a.useEffect)(()=>(!N&&T&&u.A.canUseDOM&&null!=P&&window.docusaurus.prefetch(P),()=>{N&&j.current&&j.current.disconnect()}),[j,P,N,T]);let I=P?.startsWith("#")??!1,D=!g.target||"_self"===g.target,F=!P||!T||!D||I&&"hash"!==S;m||!I&&F||E.collectLink(P),g.id&&E.collectAnchor(g.id);let z={};return F?(0,r.jsx)("a",{ref:_,href:P,...A&&!T&&{target:"_blank",rel:"noopener noreferrer"},...g,...z}):(0,r.jsx)(L,{...g,onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,N&&e&&T&&(j.current=new window.IntersectionObserver(t=>{t.forEach(t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))})}),j.current.observe(e))},to:P,...e&&{isActive:p,activeClassName:f},...z})})},116(e,t,n){"use strict";n.d(t,{A:()=>r});let r=()=>null},6475(e,t,n){"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(1987),a=n(1763);function o(e,t){let n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){let n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,a.isValidElement)(e))?n.map((e,t)=>(0,a.isValidElement)(e)?a.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(2654);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function s({message:e,id:t},n){return o(l({message:e,id:t}),n)}function u({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw console.warn("Illegal children",e),Error("The Docusaurus component only accept simple string values");let a=l({message:e,id:t});return(0,r.jsx)(r.Fragment,{children:o(a,n)})}},8595(e,t,n){"use strict";n.d(t,{W:()=>r});let r="default"},2236(e,t,n){"use strict";function r(e){return/^(?:[A-Za-z][A-Za-z\d+.-]*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},319(e,t,n){"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(1763),a=n(5484),o=n(2236);function i(){let{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router;return{withBaseUrl:(0,r.useCallback)((e,r)=>(function({siteUrl:e,baseUrl:t,url:n,options:{forcePrependBaseUrl:r=!1,absolute:a=!1}={},router:i}){if(!n||n.startsWith("#")||(0,o.z)(n))return n;if("hash"===i)return n.startsWith("/")?`.${n}`:`./${n}`;if(r)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;let l=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+l:l})({siteUrl:n,baseUrl:t,url:e,options:r,router:i}),[n,t,i])}}function l(e,t={}){let{withBaseUrl:n}=i();return n(e,t)}},4216(e,t,n){"use strict";n.d(t,{A:()=>o}),n(1987);var r=n(1763);let a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}});function o(){return(0,r.useContext)(a)}},5484(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(3235);function o(){return(0,r.useContext)(a.o)}},8261(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(4607);function o(){return(0,r.useContext)(a.o)}},9879(e,t,n){"use strict";n.d(t,{A:()=>a});var r=n(1763);let a=n(4619).A.canUseDOM?r.useLayoutEffect:r.useEffect},7581(e,t,n){"use strict";n.d(t,{A:()=>o});var r=n(1763),a=n(9648);function o(){let e=r.useContext(a.o);if(!e)throw Error("Unexpected: no Docusaurus route context found");return e}},8115(e,t,n){"use strict";function r(e){let t={};return!function e(n,r){Object.entries(n).forEach(([n,a])=>{let o=r?`${r}.${n}`:n;"object"==typeof a&&a&&Object.keys(a).length>0?e(a,o):t[o]=a})}(e),t}n.d(t,{A:()=>r})},9648(e,t,n){"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(1987),a=n(1763);let o=a.createContext(null);function i({children:e,value:t}){let n=a.useContext(o),l=(0,a.useMemo)(()=>(function({parent:e,value:t}){if(!e){if(t){if(!("plugin"in t))throw Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute")}else throw Error("Unexpected: no Docusaurus route context found");return t}let n={...e.data,...t?.data};return{plugin:e.plugin,data:n}})({parent:n,value:t}),[n,t]);return(0,r.jsx)(o.Provider,{value:l,children:e})}},4806(e,t,n){"use strict";n.d(t,{VQ:()=>p,g1:()=>m});var r=n(1987),a=n(1763),o=n(9678),i=n(8595),l=n(8168),s=n(8184),u=n(7850);let c=e=>`docs-preferred-version-${e}`,d=a.createContext(null);function f({children:e}){let t=function(){let e=(0,o.Gy)(),t=(0,l.p)().docs.versionPersistence,n=(0,a.useMemo)(()=>Object.keys(e),[e]),[r,i]=(0,a.useState)(()=>Object.fromEntries(n.map(e=>[e,{preferredVersionName:null}])));return(0,a.useEffect)(()=>{i(function({pluginIds:e,versionPersistence:t,allDocsData:n}){return Object.fromEntries(e.map(e=>{var r,a;let o,i,l;return[e,(i=e,l=t,o=(0,s.Wf)(c(i),{persistence:l}).get(),n[e].versions.some(e=>e.name===o)?{preferredVersionName:o}:(r=e,a=t,(0,s.Wf)(c(r),{persistence:a}).del(),{preferredVersionName:null}))]}))}({allDocsData:e,versionPersistence:t,pluginIds:n}))},[e,t,n]),[r,(0,a.useMemo)(()=>({savePreferredVersion:function(e,n){var r,a,o;r=e,a=t,o=n,(0,s.Wf)(c(r),{persistence:a}).set(o),i(t=>({...t,[e]:{preferredVersionName:n}}))}}),[t])]}();return(0,r.jsx)(d.Provider,{value:t,children:e})}function p({children:e}){return(0,r.jsx)(f,{children:e})}function m(e=i.W){let t=(0,o.ht)(e),[n,r]=function(){let e=(0,a.useContext)(d);if(!e)throw new u.dV("DocsPreferredVersionContextProvider");return e}(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find(e=>e.name===l)??null,savePreferredVersionName:(0,a.useCallback)(t=>{r.savePreferredVersion(e,t)},[r,e])}}},345(e,t,n){"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(1987),a=n(1763),o=n(7850);let i=Symbol("EmptyContext"),l=a.createContext(i);function s({children:e,name:t,items:n}){let o=(0,a.useMemo)(()=>t&&n?{name:t,items:n}:null,[t,n]);return(0,r.jsx)(l.Provider,{value:o,children:e})}function u(){let e=(0,a.useContext)(l);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},8484(e,t,n){"use strict";n.d(t,{B5:()=>v,Nr:()=>function e(t){if("link"===t.type&&!t.unlisted)return t.href;if("category"===t.type){if(t.href&&!t.linkUnlisted)return t.href;for(let n of t.items){let t=e(n);if(t)return t}return}},OF:()=>h,QB:()=>y,Vd:()=>g,Y:()=>m,fW:()=>b,w8:()=>p});var r=n(1763),a=n(6532),o=n(6345),i=n(9678),l=n(7711),s=n(8292),u=n(4806),c=n(73),d=n(345);let f=(e,t)=>void 0!==e&&(0,l.ys)(e,t);function p(e,t){if("link"===e.type)return f(e.href,t);if("category"===e.type){let n;return f(e.href,t)||(n=e.items,n.some(e=>p(e,t)))}return!1}function m(e,t){return(0,r.useMemo)(()=>e.filter(e=>(function e(t,n){switch(t.type){case"category":return p(t,n)||void 0!==t.href&&!t.linkUnlisted||t.items.some(t=>e(t,n));case"link":return!t.unlisted||p(t,n);default:return!0}})(e,t)),[e,t])}function h(){let e=(0,d.t)(),{pathname:t}=(0,a.zy)();return!1!==(0,i.vT)()?.pluginData.breadcrumbs&&e?function({sidebarItems:e,pathname:t,onlyCategories:n=!1}){let r=[];return!function e(a){for(let o of a)if("category"===o.type){if((0,l.ys)(o.href,t)||e(o.items))return r.unshift(o),!0}else if("link"===o.type&&o.docId&&(0,l.ys)(o.href,t))return n||r.unshift(o),!0;return!1}(e),r}({sidebarItems:e.items,pathname:t}):null}function g(e){let{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,u.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)(()=>(0,s.sb)([t,n,a].filter(Boolean)),[t,n,a])}function b(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.sidebars?Object.entries(e.sidebars):[]),r=t.find(t=>t[0]===e);if(!r)throw Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map(e=>e.name).join(", ")}". Available sidebar ids are: - ${t.map(e=>e[0]).join("\n- ")}`);return r[1]},[e,n])}function y(e,t){let n=g(t);return(0,r.useMemo)(()=>{let t=n.flatMap(e=>e.docs),r=t.find(t=>t.id===e);if(!r){if(n.flatMap(e=>e.draftIds).includes(e))return null;throw Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map(e=>e.name).join(", ")}". Available doc ids are: diff --git a/en/assets/js/runtime~main.6a04d1ae.js b/en/assets/js/runtime~main.fc459562.js similarity index 97% rename from en/assets/js/runtime~main.6a04d1ae.js rename to en/assets/js/runtime~main.fc459562.js index 41f4f38..5e306be 100644 --- a/en/assets/js/runtime~main.6a04d1ae.js +++ b/en/assets/js/runtime~main.fc459562.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,r,t,o,c,n,f={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return f[e].call(r.exports,r,r.exports,b),r.exports}b.m=f,b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(r,t){if(1&t&&(r=this(r)),8&t||"object"==typeof r&&r&&(4&t&&r.__esModule||16&t&&"function"==typeof r.then))return r;var o=Object.create(null);b.r(o);var c={};e=e||[null,a({}),a([]),a(a)];for(var n=2&t&&r;("object"==typeof n||"function"==typeof n)&&!~e.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach(e=>{c[e]=()=>r[e]});return c.default=()=>r,b.d(o,c),o},b.d=(e,a)=>{for(var r in a)b.o(a,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,r)=>(b.f[r](e,a),a),[])),b.u=e=>"assets/js/"+(({106:"17896441",173:"5fe4f5d2",177:"4be978ea",188:"7abcf739",206:"772f9d94",228:"ab4e331a",283:"7fe95379",301:"523c1e1a",321:"66aed93e",331:"2f2388ac",4:"b6b92320",413:"2506a922",431:"b3adb838",439:"43054f0e",45:"a89a62ae",451:"20ddc183",452:"1df93b7f",46:"7c4e16d0",518:"f2426367",56:"a7456010",568:"b32b4337",569:"cc5cf7e7",572:"2a662f4c",575:"a7bd4aaa",597:"d58d1957",604:"17bb2c49",608:"814847fd",621:"b6948417",637:"5b44acae",668:"5e95c892",669:"4ac686ed",697:"1bc5dae4",747:"aba21aa0",785:"a94703ab",891:"affd0631"})[e]||e)+"."+({106:"6c48d3c2",173:"c001a7e2",177:"dc6372ef",188:"0cabbc3e",206:"4fd05b25",228:"82844072",283:"33146854",301:"bf66c324",321:"70d7565c",331:"edec12c7",4:"bee29316",406:"7afbacb1",413:"e24c6914",431:"2eab55db",439:"4dde2329",45:"cbe83a92",451:"d640f03b",452:"26956a5e",46:"f92d6bf2",518:"56757d29",56:"b47ace4d",568:"f4af2bbd",569:"94e9fb7c",572:"bc285ca6",575:"96f1510e",597:"6eff27f7",604:"7c118acc",608:"ec59cc50",621:"e734b237",627:"5a86db8b",637:"cadbf450",668:"61b67e6b",669:"eb9285c5",697:"5e720e55",747:"66a74c66",785:"b81930da",891:"eb078ec4"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b.l=function(e,a,t,o){if(r[e])return void r[e].push(a);if(void 0!==t)for(var c,n,f=document.getElementsByTagName("script"),d=0;d{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t=[],b.O=(e,a,r,o)=>{if(a){o=o||0;for(var c=t.length;c>0&&t[c-1][2]>o;c--)t[c]=t[c-1];t[c]=[a,r,o];return}for(var n=1/0,c=0;c=o)&&Object.keys(b.O).every(e=>b.O[e](a[d]))?a.splice(d--,1):(f=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",b6b92320:"4",a89a62ae:"45","7c4e16d0":"46",a7456010:"56","5fe4f5d2":"173","4be978ea":"177","7abcf739":"188","772f9d94":"206",ab4e331a:"228","7fe95379":"283","523c1e1a":"301","66aed93e":"321","2f2388ac":"331","2506a922":"413",b3adb838:"431","43054f0e":"439","20ddc183":"451","1df93b7f":"452",f2426367:"518",b32b4337:"568",cc5cf7e7:"569","2a662f4c":"572",a7bd4aaa:"575",d58d1957:"597","17bb2c49":"604","814847fd":"608",b6948417:"621","5b44acae":"637","5e95c892":"668","4ac686ed":"669","1bc5dae4":"697",aba21aa0:"747",a94703ab:"785",affd0631:"891"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,a){var r=b.o(o,e)?o[e]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var t=new Promise((a,t)=>r=o[e]=[a,t]);a.push(r[2]=t);var c=b.p+b.u(e),n=Error();b.l(c,function(a){if(b.o(o,e)&&(0!==(r=o[e])&&(o[e]=void 0),r)){var t=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;n.message="Loading chunk "+e+" failed.\n("+t+": "+c+")",n.name="ChunkLoadError",n.type=t,n.request=c,r[1](n)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],c=(e,a)=>{var r,t,c=a[0],n=a[1],f=a[2],d=0;if(c.some(e=>0!==o[e])){for(r in n)b.o(n,r)&&(b.m[r]=n[r]);if(f)var i=f(b)}for(e&&e(a);d{"use strict";var e,a,r,t,o,c,n,f={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return f[e].call(r.exports,r,r.exports,b),r.exports}b.m=f,b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(r,t){if(1&t&&(r=this(r)),8&t||"object"==typeof r&&r&&(4&t&&r.__esModule||16&t&&"function"==typeof r.then))return r;var o=Object.create(null);b.r(o);var c={};e=e||[null,a({}),a([]),a(a)];for(var n=2&t&&r;("object"==typeof n||"function"==typeof n)&&!~e.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach(e=>{c[e]=()=>r[e]});return c.default=()=>r,b.d(o,c),o},b.d=(e,a)=>{for(var r in a)b.o(a,r)&&!b.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce((a,r)=>(b.f[r](e,a),a),[])),b.u=e=>"assets/js/"+(({106:"17896441",173:"5fe4f5d2",177:"4be978ea",188:"7abcf739",206:"772f9d94",228:"ab4e331a",283:"7fe95379",301:"523c1e1a",321:"66aed93e",331:"2f2388ac",4:"b6b92320",413:"2506a922",431:"b3adb838",439:"43054f0e",45:"a89a62ae",451:"20ddc183",452:"1df93b7f",46:"7c4e16d0",518:"f2426367",56:"a7456010",568:"b32b4337",569:"cc5cf7e7",572:"2a662f4c",575:"a7bd4aaa",597:"d58d1957",604:"17bb2c49",608:"814847fd",621:"b6948417",637:"5b44acae",668:"5e95c892",669:"4ac686ed",697:"1bc5dae4",747:"aba21aa0",785:"a94703ab",891:"affd0631"})[e]||e)+"."+({106:"6c48d3c2",173:"c001a7e2",177:"dc6372ef",188:"0cabbc3e",206:"4fd05b25",228:"82844072",283:"33146854",301:"1ac3e32b",321:"70d7565c",331:"edec12c7",4:"bee29316",406:"7afbacb1",413:"e24c6914",431:"632710fc",439:"4dde2329",45:"cbe83a92",451:"d640f03b",452:"26956a5e",46:"f92d6bf2",518:"56757d29",56:"b47ace4d",568:"f4af2bbd",569:"94e9fb7c",572:"bc285ca6",575:"96f1510e",597:"6eff27f7",604:"7c118acc",608:"ec59cc50",621:"e734b237",627:"5a86db8b",637:"cadbf450",668:"61b67e6b",669:"eb9285c5",697:"5e720e55",747:"66a74c66",785:"b81930da",891:"eb078ec4"})[e]+".js",b.miniCssF=e=>""+e+".css",b.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},b.l=function(e,a,t,o){if(r[e])return void r[e].push(a);if(void 0!==t)for(var c,n,f=document.getElementsByTagName("script"),d=0;d{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t=[],b.O=(e,a,r,o)=>{if(a){o=o||0;for(var c=t.length;c>0&&t[c-1][2]>o;c--)t[c]=t[c-1];t[c]=[a,r,o];return}for(var n=1/0,c=0;c=o)&&Object.keys(b.O).every(e=>b.O[e](a[d]))?a.splice(d--,1):(f=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",b6b92320:"4",a89a62ae:"45","7c4e16d0":"46",a7456010:"56","5fe4f5d2":"173","4be978ea":"177","7abcf739":"188","772f9d94":"206",ab4e331a:"228","7fe95379":"283","523c1e1a":"301","66aed93e":"321","2f2388ac":"331","2506a922":"413",b3adb838:"431","43054f0e":"439","20ddc183":"451","1df93b7f":"452",f2426367:"518",b32b4337:"568",cc5cf7e7:"569","2a662f4c":"572",a7bd4aaa:"575",d58d1957:"597","17bb2c49":"604","814847fd":"608",b6948417:"621","5b44acae":"637","5e95c892":"668","4ac686ed":"669","1bc5dae4":"697",aba21aa0:"747",a94703ab:"785",affd0631:"891"})[e]||e,b.p+b.u(e)},o={14:0,783:0},b.f.j=function(e,a){var r=b.o(o,e)?o[e]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(14|783)$/.test(e))o[e]=0;else{var t=new Promise((a,t)=>r=o[e]=[a,t]);a.push(r[2]=t);var c=b.p+b.u(e),n=Error();b.l(c,function(a){if(b.o(o,e)&&(0!==(r=o[e])&&(o[e]=void 0),r)){var t=a&&("load"===a.type?"missing":a.type),c=a&&a.target&&a.target.src;n.message="Loading chunk "+e+" failed.\n("+t+": "+c+")",n.name="ChunkLoadError",n.type=t,n.request=c,r[1](n)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],c=(e,a)=>{var r,t,c=a[0],n=a[1],f=a[2],d=0;if(c.some(e=>0!==o[e])){for(r in n)b.o(n,r)&&(b.m[r]=n[r]);if(f)var i=f(b)}for(e&&e(a);dCommunity & Contributing | Orbien +Community & Contributing | Orbien

    Community & Contributing

    diff --git a/en/docs/docker.html b/en/docs/docker.html index 77633ec..757a742 100644 --- a/en/docs/docker.html +++ b/en/docs/docker.html @@ -1,4 +1,4 @@ -Docker | Orbien +Docker | Orbien

    Docker

    diff --git a/en/docs/download.html b/en/docs/download.html index 0d74b9b..dc4ef29 100644 --- a/en/docs/download.html +++ b/en/docs/download.html @@ -1,6 +1,6 @@ -Download | Orbien +Download | Orbien

    Download

    Choose the package for your OS and architecture

    -
    v3.1.0-beta.1All releases
    OSArchlibcServerCLI ClientDesktop ClientNotes
    Linuxamd64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    amd64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    arm64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    arm64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    FreeBSDamd64tar.gztar.gz
    Windowsamd64tar.gztar.gzzip
    arm64tar.gztar.gzzip
    macOSamd64tar.gztar.gzdmgIf blocked, allow it in System Settings
    arm64tar.gztar.gzdmgIf blocked, allow it in System Settings

    Docker

    • orbien-serverserver
      docker pull ghcr.io/orbien-org/orbien-server:latest
    • orbienclient
      docker pull ghcr.io/orbien-org/orbien:latest
    \ No newline at end of file +
    OSArchlibcServerCLI ClientDesktop ClientNotes
    Linuxamd64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    amd64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    arm64gnugnu · tar.gzgnu · tar.gzdebDynamically linked glibc
    arm64muslmusl · tar.gzmusl · tar.gzStatically linked; works with older glibc
    FreeBSDamd64tar.gztar.gz
    Windowsamd64tar.gztar.gzzip
    arm64tar.gztar.gzzip
    macOSamd64tar.gztar.gzdmgIf blocked, allow it in System Settings
    arm64tar.gztar.gzdmgIf blocked, allow it in System Settings

    Docker

    • orbien-serverserver
      docker pull ghcr.io/orbien-org/orbien-server:latest
    • orbienclient
      docker pull ghcr.io/orbien-org/orbien:latest
    \ No newline at end of file diff --git a/en/docs/features/authentication.html b/en/docs/features/authentication.html index 62ed20f..f5d07a0 100644 --- a/en/docs/features/authentication.html +++ b/en/docs/features/authentication.html @@ -1,4 +1,4 @@ -Authentication | Orbien +Authentication | Orbien

    Authentication

    diff --git a/en/docs/features/bandwidth.html b/en/docs/features/bandwidth.html index 8854e29..f4cb4e2 100644 --- a/en/docs/features/bandwidth.html +++ b/en/docs/features/bandwidth.html @@ -1,4 +1,4 @@ -Bandwidth Limit | Orbien +Bandwidth Limit | Orbien

    Bandwidth Limit

    diff --git a/en/docs/features/dashboard.html b/en/docs/features/dashboard.html index f40373c..a66c8d2 100644 --- a/en/docs/features/dashboard.html +++ b/en/docs/features/dashboard.html @@ -1,4 +1,4 @@ -Dashboard | Orbien +Dashboard | Orbien

    Dashboard

    diff --git a/en/docs/features/env.html b/en/docs/features/env.html index 3ff96c4..115c0ec 100644 --- a/en/docs/features/env.html +++ b/en/docs/features/env.html @@ -1,4 +1,4 @@ -Environment Variables | Orbien +Environment Variables | Orbien

    Environment Variables

    diff --git a/en/docs/features/public-bind.html b/en/docs/features/public-bind.html index a7e980a..be6d444 100644 --- a/en/docs/features/public-bind.html +++ b/en/docs/features/public-bind.html @@ -1,4 +1,4 @@ -Public Bind Address | Orbien +Public Bind Address | Orbien

    Public Bind Address

    diff --git a/en/docs/features/real-ip.html b/en/docs/features/real-ip.html index 8b8b742..95ff737 100644 --- a/en/docs/features/real-ip.html +++ b/en/docs/features/real-ip.html @@ -1,4 +1,4 @@ -Real IP | Orbien +Real IP | Orbien

    Real IP

    diff --git a/en/docs/integrations/springboot.html b/en/docs/integrations/springboot.html index ddbf1d3..1c1f23a 100644 --- a/en/docs/integrations/springboot.html +++ b/en/docs/integrations/springboot.html @@ -1,4 +1,4 @@ -Spring Boot Integration | Orbien +Spring Boot Integration | Orbien

    Spring Boot Integration

    @@ -8,7 +8,7 @@
  • Transport: TCP only
  • No TCP multiplexing: set orbien.tcp-mux to false, and set [transport].tcpMux = false on the server (multiplexing is on by default; turn it off when using the Java client)
  • -
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.1.0-beta.1</version>
    </dependency>
    +
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.1.0</version>
    </dependency>

    Minimal configuration​

    local-port and name are optional. When omitted, the starter uses the Spring Boot web port and spring.application.name (or orbien-{protocol}).

    # application.yml
    orbien:
    enabled: true
    server-addr: 127.0.0.1
    # token: YOUR_TOKEN # optional
    tunnel:
    protocol: http
    domains:
    - web.domain.com
    diff --git a/en/docs/intro.html b/en/docs/intro.html index 767f8eb..0cf90c5 100644 --- a/en/docs/intro.html +++ b/en/docs/intro.html @@ -1,4 +1,4 @@ -Introduction | Orbien +Introduction | Orbien

    Introduction

    diff --git a/en/docs/license.html b/en/docs/license.html index 0611270..263dba8 100644 --- a/en/docs/license.html +++ b/en/docs/license.html @@ -1,4 +1,4 @@ -License | Orbien +License | Orbien

    License

    diff --git a/en/docs/performance.html b/en/docs/performance.html index dd35f8b..c9217dd 100644 --- a/en/docs/performance.html +++ b/en/docs/performance.html @@ -1,4 +1,4 @@ -Performance | Orbien +Performance | Orbien

    Performance

    diff --git a/en/docs/quickstart.html b/en/docs/quickstart.html index 14a6e78..3529dab 100644 --- a/en/docs/quickstart.html +++ b/en/docs/quickstart.html @@ -1,4 +1,4 @@ -Quick Start | Orbien +Quick Start | Orbien

    Quick Start

    diff --git a/en/docs/roadmap.html b/en/docs/roadmap.html index 78649e1..6297de6 100644 --- a/en/docs/roadmap.html +++ b/en/docs/roadmap.html @@ -1,4 +1,4 @@ -Roadmap | Orbien +Roadmap | Orbien

    Roadmap

    diff --git a/en/docs/transport/connect-pool.html b/en/docs/transport/connect-pool.html index 4adb9d2..fe7dcd7 100644 --- a/en/docs/transport/connect-pool.html +++ b/en/docs/transport/connect-pool.html @@ -1,4 +1,4 @@ -Connection Pool | Orbien +Connection Pool | Orbien

    Connection Pool

    diff --git a/en/docs/transport/protocol/kcp.html b/en/docs/transport/protocol/kcp.html index e144e25..f2185bd 100644 --- a/en/docs/transport/protocol/kcp.html +++ b/en/docs/transport/protocol/kcp.html @@ -1,4 +1,4 @@ -KCP | Orbien +KCP | Orbien

    KCP

    diff --git a/en/docs/transport/protocol/quic.html b/en/docs/transport/protocol/quic.html index 4c25ce2..fa58331 100644 --- a/en/docs/transport/protocol/quic.html +++ b/en/docs/transport/protocol/quic.html @@ -1,4 +1,4 @@ -QUIC | Orbien +QUIC | Orbien

    QUIC

    diff --git a/en/docs/transport/protocol/tcp.html b/en/docs/transport/protocol/tcp.html index cf29c81..894f04d 100644 --- a/en/docs/transport/protocol/tcp.html +++ b/en/docs/transport/protocol/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/en/docs/transport/protocol/websocket.html b/en/docs/transport/protocol/websocket.html index adb8be6..673af09 100644 --- a/en/docs/transport/protocol/websocket.html +++ b/en/docs/transport/protocol/websocket.html @@ -1,4 +1,4 @@ -WebSocket | Orbien +WebSocket | Orbien

    WebSocket

    diff --git a/en/docs/transport/tcp-mux.html b/en/docs/transport/tcp-mux.html index 1cabec0..cea8678 100644 --- a/en/docs/transport/tcp-mux.html +++ b/en/docs/transport/tcp-mux.html @@ -1,4 +1,4 @@ -TCP Multiplexing | Orbien +TCP Multiplexing | Orbien

    TCP Multiplexing

    diff --git a/en/docs/transport/tls.html b/en/docs/transport/tls.html index 829000c..5548a80 100644 --- a/en/docs/transport/tls.html +++ b/en/docs/transport/tls.html @@ -1,4 +1,4 @@ -TLS | Orbien +TLS | Orbien

    TLS

    diff --git a/en/docs/tunnels/domains.html b/en/docs/tunnels/domains.html index c0bb073..32a7df3 100644 --- a/en/docs/tunnels/domains.html +++ b/en/docs/tunnels/domains.html @@ -1,4 +1,4 @@ -Domains | Orbien +Domains | Orbien

    Domains

    diff --git a/en/docs/tunnels/http.html b/en/docs/tunnels/http.html index 3a8c181..706a289 100644 --- a/en/docs/tunnels/http.html +++ b/en/docs/tunnels/http.html @@ -1,4 +1,4 @@ -HTTP | Orbien +HTTP | Orbien

    HTTP

    diff --git a/en/docs/tunnels/https.html b/en/docs/tunnels/https.html index 3c2a2a9..34e6aa9 100644 --- a/en/docs/tunnels/https.html +++ b/en/docs/tunnels/https.html @@ -1,4 +1,4 @@ -HTTPS | Orbien +HTTPS | Orbien

    HTTPS

    diff --git a/en/docs/tunnels/tcp.html b/en/docs/tunnels/tcp.html index 19aa26c..e65165c 100644 --- a/en/docs/tunnels/tcp.html +++ b/en/docs/tunnels/tcp.html @@ -1,4 +1,4 @@ -TCP | Orbien +TCP | Orbien

    TCP

    diff --git a/en/docs/tunnels/udp.html b/en/docs/tunnels/udp.html index 45f1c21..53f58f1 100644 --- a/en/docs/tunnels/udp.html +++ b/en/docs/tunnels/udp.html @@ -1,4 +1,4 @@ -UDP | Orbien +UDP | Orbien

    UDP

    diff --git a/en/index.html b/en/index.html index 43f9d66..41a5b27 100644 --- a/en/index.html +++ b/en/index.html @@ -1,4 +1,4 @@ -Orbien — NAT Traversal | Orbien +Orbien — NAT Traversal | Orbien

    Orbien

    Powered by Rust and Tokio

    Lightweight, high-performance, and secure NAT traversal — binary size about 5MB

    Orbien project dashboardOrbien project dashboard

    High Performance

    High performance, low latency, packet-loss resilient, low memory footprint, and no GC pauses — built for long-running servers

    Multi-Protocol Tunnels

    Supports TCP, UDP, HTTP, and HTTPS tunnels

    Multiple Transports

    Supports TCP, QUIC, KCP, and WebSocket transports, plus TCP multiplexing

    Security & Encryption

    Token authentication with TLS / mTLS; HTTPS transparent forwarding and optional client-side TLS termination

    Visual Ops

    Built-in lightweight server web UI and native desktop client for easier ops, monitoring, and higher productivity

    Cross-Platform

    Supports Windows / macOS / Linux / FreeBSD and more

    Desktop Client​

    Native Rust desktop client — manage tunnel configs easily with a visual UI

    Download Desktop
    Orbien Desktop client demo
    \ No newline at end of file diff --git a/index.html b/index.html index a0eb702..5c17dee 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -Orbien — 内网穿透 | Orbien +Orbien — 内网穿透 | Orbien

    Orbien

    由 Rust 与 Tokio 驱动

    轻量、高性能、安全的内网穿透,二进制体积大约5MB

    Orbien 项目监控面板Orbien 项目监控面板

    高性能

    高性能、低延迟、抗丢包、内存占用低、无GC停顿,适合长期服务器运行

    多协议隧道

    支持 TCP、UDP、HTTP、HTTPS 协议隧道

    多传输协议

    支持 TCP、QUIC、KCP、WebSocket 多种传输协议,同时支持TCP多路复用

    安全加密

    支持 Token 鉴权与 TLS /mTLS 加密传输;HTTPS采用透明转发和可选客户端TLS终止

    可视化运维

    内置轻量服务端Web管理界面和原生桌面客户端,便于运维监控,提高效率

    跨平台支持

    支持 Windows / macOS / Linux / freeBSD 等平台

    桌面客户端​

    纯Rust原生桌面客户端,通过可视化界面轻松管理隧道配置

    下载桌面端
    Orbien Desktop 客户端演示
    \ No newline at end of file