diff --git a/404.html b/404.html index 98d4fb7..2e419a3 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.631e1d9f.js b/assets/js/6b77a8a0.48c53b91.js similarity index 70% rename from assets/js/6b77a8a0.631e1d9f.js rename to assets/js/6b77a8a0.48c53b91.js index 01b4642..f99c054 100644 --- a/assets/js/6b77a8a0.631e1d9f.js +++ b/assets/js/6b77a8a0.48c53b91.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":"\u70ED\u91CD\u8F7D","permalink":"/orbien/docs/features/hot-reload"},"next":{"title":"\u6027\u80FD\u6D4B\u8BD5","permalink":"/orbien/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 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:s}=(0,g.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 T({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 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),[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(!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&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(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,l.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.4.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.4.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: "127.0.0.1:9527"\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: "127.0.0.1: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:()=>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(!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&&s(v)},[v]),{selectedValue:l,selectValue:(0,i.useCallback)(e=>{if(!b({value:e,tabValues:a}))throw Error(`Can't select invalid tab value=${e}`);s(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,l.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.4.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.4.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: "127.0.0.1:9527"\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: "127.0.0.1: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:()=>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/assets/js/e6f0c936.74dd2779.js b/assets/js/e6f0c936.74dd2779.js new file mode 100644 index 0000000..fcde1d1 --- /dev/null +++ b/assets/js/e6f0c936.74dd2779.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.4.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/e6f0c936.ae9ce95d.js b/assets/js/e6f0c936.ae9ce95d.js deleted file mode 100644 index 3a3ffb1..0000000 --- a/assets/js/e6f0c936.ae9ce95d.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.4.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/main.e4e91f28.js b/assets/js/main.2c702c45.js similarity index 97% rename from assets/js/main.e4e91f28.js rename to assets/js/main.2c702c45.js index f2e899b..02e1c9c 100644 --- a/assets/js/main.e4e91f28.js +++ b/assets/js/main.2c702c45.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":"desktop","path":"/orbien/docs/desktop","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/hot-reload","path":"/orbien/docs/features/hot-reload","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":"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/socks5","path":"/orbien/docs/tunnels/socks5","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.4.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":"desktop","path":"/orbien/docs/desktop","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/hot-reload","path":"/orbien/docs/features/hot-reload","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":"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/socks5","path":"/orbien/docs/tunnels/socks5","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.4.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.68da662f.js b/assets/js/runtime~main.fc004da0.js similarity index 57% rename from assets/js/runtime~main.68da662f.js rename to assets/js/runtime~main.fc004da0.js index 3d7ec65..d7abf93 100644 --- a/assets/js/runtime~main.68da662f.js +++ b/assets/js/runtime~main.fc004da0.js @@ -1 +1 @@ -(()=>{"use strict";var e,r,t,a,o,f,d,c={},n={};function b(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={exports:{}};return c[e].call(t.exports,t,t.exports,b),t.exports}b.m=c,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 d=2&a&&t;("object"==typeof d||"function"==typeof d)&&!~e.indexOf(d);d=r(d))Object.getOwnPropertyNames(d).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",217:"0e384e19",218:"05d4cacb",229:"cc002db1",267:"ab38dbfe",326:"fe98809a",356:"5ef0e9d6",361:"8c6208d8",364:"fd368041",394:"def3d52a",395:"37f66e80",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",49:"bbb29017",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",960:"80557847"})[e]||e)+"."+({106:"6c48d3c2",133:"32d005bc",135:"e0744c2a",217:"dcfe22a1",218:"7119d8a1",229:"2eec232f",267:"250a4996",326:"94f05a50",356:"bc7a97b0",361:"8e2c2ac2",364:"d1053280",394:"e1de427f",395:"12dd921e",406:"7afbacb1",41:"ec699968",411:"5cd6a9d0",440:"ae9ce95d",452:"2b0cd58a",475:"9c4028b5",49:"455b90d1",499:"c6dc6b27",503:"42888fa3",521:"440f7b3a",56:"b47ace4d",575:"96f1510e",590:"4f76e68a",627:"5a86db8b",630:"8406ff27",646:"631e1d9f",668:"61b67e6b",688:"8ebe344a",69:"d0b6799d",707:"3c5ba703",747:"66a74c66",785:"b81930da",795:"59ea1d8d",817:"ef8809fb",896:"b64acab5",960:"d294fd24"})[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,d,c=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 d=1/0,f=0;f=o)&&Object.keys(b.O).every(e=>b.O[e](r[n]))?r.splice(n--,1):(c=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x4cd3717:"960",0x5d22870:"69",edefc60b:"41",bbb29017:"49",a7456010:"56","90358f02":"133",ac5280f2:"135","0e384e19":"217","05d4cacb":"218",cc002db1:"229",ab38dbfe:"267",fe98809a:"326","5ef0e9d6":"356","8c6208d8":"361",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),d=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;d.message="Loading chunk "+e+" failed.\n("+a+": "+f+")",d.name="ChunkLoadError",d.type=a,d.request=f,t[1](d)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],f=(e,r)=>{var t,a,f=r[0],d=r[1],c=r[2],n=0;if(f.some(e=>0!==o[e])){for(t in d)b.o(d,t)&&(b.m[t]=d[t]);if(c)var i=c(b)}for(e&&e(r);n{"use strict";var e,r,t,a,f,o,d,c={},n={};function b(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={exports:{}};return c[e].call(t.exports,t,t.exports,b),t.exports}b.m=c,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 d=2&a&&t;("object"==typeof d||"function"==typeof d)&&!~e.indexOf(d);d=r(d))Object.getOwnPropertyNames(d).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",217:"0e384e19",218:"05d4cacb",229:"cc002db1",267:"ab38dbfe",326:"fe98809a",356:"5ef0e9d6",361:"8c6208d8",364:"fd368041",394:"def3d52a",395:"37f66e80",41:"edefc60b",411:"67e4f9fb",440:"e6f0c936",452:"1df93b7f",475:"f325f636",49:"bbb29017",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",960:"80557847"})[e]||e)+"."+({106:"6c48d3c2",133:"32d005bc",135:"e0744c2a",217:"dcfe22a1",218:"7119d8a1",229:"2eec232f",267:"250a4996",326:"94f05a50",356:"bc7a97b0",361:"8e2c2ac2",364:"d1053280",394:"e1de427f",395:"12dd921e",406:"7afbacb1",41:"ec699968",411:"5cd6a9d0",440:"74dd2779",452:"2b0cd58a",475:"9c4028b5",49:"455b90d1",499:"c6dc6b27",503:"42888fa3",521:"440f7b3a",56:"b47ace4d",575:"96f1510e",590:"4f76e68a",627:"5a86db8b",630:"8406ff27",646:"48c53b91",668:"61b67e6b",688:"8ebe344a",69:"d0b6799d",707:"3c5ba703",747:"66a74c66",785:"b81930da",795:"59ea1d8d",817:"ef8809fb",896:"b64acab5",960:"d294fd24"})[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,d,c=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 d=1/0,o=0;o=f)&&Object.keys(b.O).every(e=>b.O[e](r[n]))?r.splice(n--,1):(c=!1,f"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x4cd3717:"960",0x5d22870:"69",edefc60b:"41",bbb29017:"49",a7456010:"56","90358f02":"133",ac5280f2:"135","0e384e19":"217","05d4cacb":"218",cc002db1:"229",ab38dbfe:"267",fe98809a:"326","5ef0e9d6":"356","8c6208d8":"361",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),d=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;d.message="Loading chunk "+e+" failed.\n("+a+": "+o+")",d.name="ChunkLoadError",d.type=a,d.request=o,t[1](d)}},"chunk-"+e,e)}},b.O.j=e=>0===f[e],o=(e,r)=>{var t,a,o=r[0],d=r[1],c=r[2],n=0;if(o.some(e=>0!==f[e])){for(t in d)b.o(d,t)&&(b.m[t]=d[t]);if(c)var i=c(b)}for(e&&e(r);n社区和贡献 | Orbien +社区和贡献 | Orbien

社区和贡献

diff --git a/docs/desktop.html b/docs/desktop.html index 27ba6a6..412cf47 100644 --- a/docs/desktop.html +++ b/docs/desktop.html @@ -1,4 +1,4 @@ -桌面客户端 | Orbien +桌面客户端 | Orbien

桌面客户端

diff --git a/docs/docker.html b/docs/docker.html index 17a352e..2cb3664 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 5e2772d..9ab524d 100644 --- a/docs/download.html +++ b/docs/download.html @@ -1,6 +1,6 @@ -下载 | Orbien +下载 | Orbien

下载

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

-
v3.4.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 cd7af32..ffea217 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 42e4aac..4c7d8b1 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 c822693..0ae2917 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 201533f..ad1089b 100644 --- a/docs/features/env.html +++ b/docs/features/env.html @@ -1,4 +1,4 @@ -环境变量 | Orbien +环境变量 | Orbien

环境变量

diff --git a/docs/features/hot-reload.html b/docs/features/hot-reload.html index c217be7..3df66b3 100644 --- a/docs/features/hot-reload.html +++ b/docs/features/hot-reload.html @@ -1,4 +1,4 @@ -热重载 | Orbien +热重载 | Orbien

热重载

diff --git a/docs/features/public-bind.html b/docs/features/public-bind.html index 5be9204..3dfcc09 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 10eac10..2cc14f7 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 e927242..bb4ae58 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.4.0-beta.1</version>
    </dependency>
    +
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.4.0</version>
    </dependency>

    最小配置

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

    # application.yml
    orbien:
    enabled: true
    server: "127.0.0.1:9527"
    # token: YOUR_TOKEN # 可选
    tunnel:
    protocol: http
    domains:
    - web.domain.com
    diff --git a/docs/intro.html b/docs/intro.html index 3f027a5..efc22c1 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 09fb9c1..7ebe93e 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 6059786..4e87420 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 feaacf7..d1f1de0 100644 --- a/docs/quickstart.html +++ b/docs/quickstart.html @@ -1,4 +1,4 @@ -快速开始 | Orbien +快速开始 | Orbien

    快速开始

    diff --git a/docs/transport/connect-pool.html b/docs/transport/connect-pool.html index 6c047ca..f966297 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 d07a619..c68e051 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 00c2da4..dc1e88a 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 8931e74..f62ba73 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 571f634..b748c2c 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 f9a8082..3ad5907 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 fc50304..9aeac9e 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 b5c7a6d..88ef604 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 a9c49ac..e9717a4 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 0e8e4c4..01ecb8f 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/socks5.html b/docs/tunnels/socks5.html index 3a75889..3a047a8 100644 --- a/docs/tunnels/socks5.html +++ b/docs/tunnels/socks5.html @@ -1,4 +1,4 @@ -SOCKS5 | Orbien +SOCKS5 | Orbien

    SOCKS5

    diff --git a/docs/tunnels/tcp.html b/docs/tunnels/tcp.html index d2b2f64..e921f86 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 eb612af..becd4c0 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 0ddc772..1cc0bb0 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.7c08e82e.js b/en/assets/js/523c1e1a.5456de3f.js similarity index 72% rename from en/assets/js/523c1e1a.7c08e82e.js rename to en/assets/js/523c1e1a.5456de3f.js index ff9930b..2f3d314 100644 --- a/en/assets/js/523c1e1a.7c08e82e.js +++ b/en/assets/js/523c1e1a.5456de3f.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":"Hot Reload","permalink":"/orbien/en/docs/features/hot-reload"},"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.4.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.4.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: "127.0.0.1:9527"\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: "127.0.0.1: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.4.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.4.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: "127.0.0.1:9527"\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: "127.0.0.1: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.a72bbf5c.js b/en/assets/js/b3adb838.a72bbf5c.js new file mode 100644 index 0000000..3c48a49 --- /dev/null +++ b/en/assets/js/b3adb838.a72bbf5c.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.4.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/b3adb838.fa3b5069.js b/en/assets/js/b3adb838.fa3b5069.js deleted file mode 100644 index 44da13f..0000000 --- a/en/assets/js/b3adb838.fa3b5069.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.4.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/main.2884a087.js b/en/assets/js/main.fbe3ef4c.js similarity index 97% rename from en/assets/js/main.2884a087.js rename to en/assets/js/main.fbe3ef4c.js index dddf5f2..818e399 100644 --- a/en/assets/js/main.2884a087.js +++ b/en/assets/js/main.fbe3ef4c.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":"desktop","path":"/orbien/en/docs/desktop","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/hot-reload","path":"/orbien/en/docs/features/hot-reload","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":"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/socks5","path":"/orbien/en/docs/tunnels/socks5","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.4.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":"desktop","path":"/orbien/en/docs/desktop","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/hot-reload","path":"/orbien/en/docs/features/hot-reload","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":"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/socks5","path":"/orbien/en/docs/tunnels/socks5","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.4.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.42b488d7.js b/en/assets/js/runtime~main.32ca5859.js similarity index 96% rename from en/assets/js/runtime~main.42b488d7.js rename to en/assets/js/runtime~main.32ca5859.js index d124027..8f15949 100644 --- a/en/assets/js/runtime~main.42b488d7.js +++ b/en/assets/js/runtime~main.32ca5859.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,r,t,o,f,c,n={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return n[e].call(r.exports,r,r.exports,b),r.exports}b.m=n,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 f={};e=e||[null,a({}),a([]),a(a)];for(var c=2&t&&r;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=a(c))Object.getOwnPropertyNames(c).forEach(e=>{f[e]=()=>r[e]});return f.default=()=>r,b.d(o,f),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",210:"ff260d60",228:"ab4e331a",283:"7fe95379",301:"523c1e1a",321:"66aed93e",331:"2f2388ac",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",731:"956c2ff8",747:"aba21aa0",785:"a94703ab",891:"affd0631",949:"96706368"})[e]||e)+"."+({106:"6c48d3c2",173:"5fd91e3a",177:"dc6372ef",188:"0cabbc3e",206:"4fd05b25",210:"321a91da",228:"d3fbb368",283:"33146854",301:"7c08e82e",321:"70d7565c",331:"edec12c7",406:"7afbacb1",413:"e24c6914",431:"fa3b5069",439:"104a613e",45:"9e6e77cb",451:"d640f03b",452:"2b0cd58a",46:"c32aabc7",518:"56757d29",56:"b47ace4d",568:"942f4547",569:"94e9fb7c",572:"760b3e84",575:"96f1510e",597:"6eff27f7",604:"a1d1f8df",608:"ec59cc50",621:"e734b237",627:"5a86db8b",637:"a9488ecc",668:"61b67e6b",669:"eb9285c5",697:"3c44fb1d",731:"7e454dd0",747:"66a74c66",785:"b81930da",891:"b62509a7",949:"b33481e9"})[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 f,c,n=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 f=t.length;f>0&&t[f-1][2]>o;f--)t[f]=t[f-1];t[f]=[a,r,o];return}for(var c=1/0,f=0;f=o)&&Object.keys(b.O).every(e=>b.O[e](a[d]))?a.splice(d--,1):(n=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5c39f40:"949",a89a62ae:"45","7c4e16d0":"46",a7456010:"56","5fe4f5d2":"173","4be978ea":"177","7abcf739":"188","772f9d94":"206",ff260d60:"210",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","956c2ff8":"731",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 f=b.p+b.u(e),c=Error();b.l(f,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),f=a&&a.target&&a.target.src;c.message="Loading chunk "+e+" failed.\n("+t+": "+f+")",c.name="ChunkLoadError",c.type=t,c.request=f,r[1](c)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],f=(e,a)=>{var r,t,f=a[0],c=a[1],n=a[2],d=0;if(f.some(e=>0!==o[e])){for(r in c)b.o(c,r)&&(b.m[r]=c[r]);if(n)var i=n(b)}for(e&&e(a);d{"use strict";var e,a,r,t,o,f,c,n={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var r=d[e]={exports:{}};return n[e].call(r.exports,r,r.exports,b),r.exports}b.m=n,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 f={};e=e||[null,a({}),a([]),a(a)];for(var c=2&t&&r;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=a(c))Object.getOwnPropertyNames(c).forEach(e=>{f[e]=()=>r[e]});return f.default=()=>r,b.d(o,f),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",210:"ff260d60",228:"ab4e331a",283:"7fe95379",301:"523c1e1a",321:"66aed93e",331:"2f2388ac",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",731:"956c2ff8",747:"aba21aa0",785:"a94703ab",891:"affd0631",949:"96706368"})[e]||e)+"."+({106:"6c48d3c2",173:"5fd91e3a",177:"dc6372ef",188:"0cabbc3e",206:"4fd05b25",210:"321a91da",228:"d3fbb368",283:"33146854",301:"5456de3f",321:"70d7565c",331:"edec12c7",406:"7afbacb1",413:"e24c6914",431:"a72bbf5c",439:"104a613e",45:"9e6e77cb",451:"d640f03b",452:"2b0cd58a",46:"c32aabc7",518:"56757d29",56:"b47ace4d",568:"942f4547",569:"94e9fb7c",572:"760b3e84",575:"96f1510e",597:"6eff27f7",604:"a1d1f8df",608:"ec59cc50",621:"e734b237",627:"5a86db8b",637:"a9488ecc",668:"61b67e6b",669:"eb9285c5",697:"3c44fb1d",731:"7e454dd0",747:"66a74c66",785:"b81930da",891:"b62509a7",949:"b33481e9"})[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 f,c,n=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 f=t.length;f>0&&t[f-1][2]>o;f--)t[f]=t[f-1];t[f]=[a,r,o];return}for(var c=1/0,f=0;f=o)&&Object.keys(b.O).every(e=>b.O[e](a[d]))?a.splice(d--,1):(n=!1,o"1.7.12",b.gca=function(e){return e=({0x11113f9:"106",0x5c39f40:"949",a89a62ae:"45","7c4e16d0":"46",a7456010:"56","5fe4f5d2":"173","4be978ea":"177","7abcf739":"188","772f9d94":"206",ff260d60:"210",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","956c2ff8":"731",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 f=b.p+b.u(e),c=Error();b.l(f,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),f=a&&a.target&&a.target.src;c.message="Loading chunk "+e+" failed.\n("+t+": "+f+")",c.name="ChunkLoadError",c.type=t,c.request=f,r[1](c)}},"chunk-"+e,e)}},b.O.j=e=>0===o[e],f=(e,a)=>{var r,t,f=a[0],c=a[1],n=a[2],d=0;if(f.some(e=>0!==o[e])){for(r in c)b.o(c,r)&&(b.m[r]=c[r]);if(n)var i=n(b)}for(e&&e(a);dCommunity & Contributing | Orbien +Community & Contributing | Orbien

    Community & Contributing

    diff --git a/en/docs/desktop.html b/en/docs/desktop.html index 674ea95..0a11067 100644 --- a/en/docs/desktop.html +++ b/en/docs/desktop.html @@ -1,4 +1,4 @@ -Desktop Client | Orbien +Desktop Client | Orbien

    Desktop Client

    diff --git a/en/docs/docker.html b/en/docs/docker.html index 96d7f61..44cc645 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 681b4c8..0bc4308 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.4.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 938dbcf..3379bce 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 45acc78..5544ca4 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 ff7a47b..568ebda 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 04a7854..9673268 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/hot-reload.html b/en/docs/features/hot-reload.html index d87c0a1..4ffe4a2 100644 --- a/en/docs/features/hot-reload.html +++ b/en/docs/features/hot-reload.html @@ -1,4 +1,4 @@ -Hot Reload | Orbien +Hot Reload | Orbien

    Hot Reload

    diff --git a/en/docs/features/public-bind.html b/en/docs/features/public-bind.html index 5c2b873..feac331 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 3f044ac..f162afc 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 db039d8..99959e7 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.4.0-beta.1</version>
    </dependency>
    +
    <dependency>
    <groupId>io.github.lxien</groupId>
    <artifactId>orbien-spring-boot-starter</artifactId>
    <version>3.4.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: "127.0.0.1:9527"
    # token: YOUR_TOKEN # optional
    tunnel:
    protocol: http
    domains:
    - web.domain.com
    diff --git a/en/docs/intro.html b/en/docs/intro.html index 8ca6f88..0ec860d 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 0e13616..04d7b72 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 2b1a8d5..7575c30 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 f4a0cd6..4a7a847 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/transport/connect-pool.html b/en/docs/transport/connect-pool.html index 9969125..4d7ab80 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 39cb304..40cf941 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 3eaf99e..bd01426 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 b167c8e..ae7606e 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 086ad25..d316b56 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 6df8659..b102a2a 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 381d9ed..2918484 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 f54cfea..c9fb5ad 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 1fd513a..55cf8a7 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 42336ea..c331254 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/socks5.html b/en/docs/tunnels/socks5.html index 04db155..ae3955c 100644 --- a/en/docs/tunnels/socks5.html +++ b/en/docs/tunnels/socks5.html @@ -1,4 +1,4 @@ -SOCKS5 | Orbien +SOCKS5 | Orbien

    SOCKS5

    diff --git a/en/docs/tunnels/tcp.html b/en/docs/tunnels/tcp.html index 9126085..43761f7 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 9496ed4..3afeef2 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 6d1deaf..ccbd270 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, HTTPS, and SOCKS5 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 demoOrbien Desktop client demo
    \ No newline at end of file diff --git a/index.html b/index.html index aad11ff..08718e0 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、SOCKS5 协议隧道

    多传输协议

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

    安全加密

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

    可视化运维

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

    跨平台支持

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

    桌面客户端

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

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