+ `,
+ },
+ {
+ html: `
+
+
+
+ `,
+ },
+ {
+ html: `
+
+
+
+ `,
},
{
- label: 'GitHub',
- href: 'https://github.com/dragonflyoss/Dragonfly2',
+ html: `
+
+
+
+ `,
},
],
},
diff --git a/i18n/zh/code.json b/i18n/zh/code.json
index 7bdd5532..141a82e7 100644
--- a/i18n/zh/code.json
+++ b/i18n/zh/code.json
@@ -236,23 +236,44 @@
"P2P File Distribution": {
"message": "基于 P2P 的文件分发"
},
- "Use P2P technology for file transfer, improve download efficiency, and save bandwidth across IDC.": {
- "message": "利用 P2P 技术进行文件传输,提高下载效率,并且节省跨机房带宽。"
+ "Use P2P technology for file transfer,": {
+ "message": "利用 P2P 技术进行文件传输"
+ },
+ "improve download efficiency, and save bandwidth across IDC.": {
+ "message": "提高下载效率,并且节省跨机房带宽。"
+ },
+ "IDC.": {
+ "message": "机房带宽。"
},
"Noninvasive": {
"message": "非侵入式接入"
},
- "Supports multiple containers for distributing images.": {
- "message": "可以非侵入式的接入多种容器客户端,并提供镜像分发。"
+ "Supports": {
+ "message": "可以非侵入式的接入"
+ },
+ "multiple containers": {
+ "message": "多种容器"
+ },
+ "for distributing images.": {
+ "message": "客户端,并提供镜像分发。"
},
"Consistency": {
"message": "一致性"
},
- "It can ensure that the same file is consistent in peer transmission, even if the user does not perform final consistency check.": {
- "message": "可确保同样的文件在节点传输中是一致的,即使用户不进行最终一致性校验。"
+ "Automatically isolate abnormal peers to": {
+ "message": "自动隔离异常节点"
+ },
+ "improve download stability.": {
+ "message": "来提高下载稳定性和成功率。"
+ },
+ "It can ensure that the same file is": {
+ "message": "可确保同样的文件在"
+ },
+ "consistent in peer transmission,": {
+ "message": "节点传输中是一致的,"
},
- "Automatically isolate abnormal peers to improve download stability.": {
- "message": "自动隔离异常节点来提高下载稳定性和成功率。"
+ "even if the user does not perform final consistency check.": {
+ "message": "即使用户不进行最终一致性校验。"
},
"theme.blog.post.readMoreLabel": {
"message": "阅读 {title} 的全文",
@@ -420,7 +441,7 @@
"Dragonfly 1.x": {
"message": "Dragonfly 1.x"
},
- "In November 2017, the Dragonfly 1.x project was open sourced,and was selected and put into production use by many internet companies.": {
+ "In November 2017, the Dragonfly 1.x project was open sourced, and was selected and put into production use by many internet companies.": {
"message": "2017年11月,Dragonfly 1.x 项目正式开源,被许多大规模互联网公司选用并投入生产使用。"
},
"In October 2018, it entered the CNCF Sandbox, becoming the third project in China to enter the CNCF Sandbox.": {
@@ -435,7 +456,7 @@
"Dragonfly 2": {
"message": "Dragonfly 2"
},
- "In April 2021, taking the advantages of Dragonfly 1 .x and making a lot of optimizations for known issues. Dragonfly 2 is open source.": {
+ "In April 2021, taking the advantages of Dragonfly 1.x and making a lot of optimizations for known issues. Dragonfly 2 is open source.": {
"message": "2021年 4月汲取 Dragonfly 1.x 的优点并针对已知问题做了大量优化。Dragonfly 2 正式开源。"
},
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
@@ -465,7 +486,7 @@
"Milestones": {
"message": "里程碑"
},
- "Who Is": {
+ "Who is": {
"message": "谁在"
},
"Using": {
@@ -474,12 +495,6 @@
"CONTACT US": {
"message": "联系我们"
},
- "as an Incubating Level Project.": {
- "message": "托管作为孵化级项目。"
- },
- "(CNCF)": {
- "message": "云原生计算机基金会"
- },
"Isolate Abnormal Peers": {
"message": "隔离异常节点"
},
@@ -495,8 +510,20 @@
"Peer Level Control": {
"message": "节点级别控制"
},
- "In addition to the speed limit for the task like many other download tools, you can also limit the speed and adjust the load limit for the peer level.": {
- "message": "除了像许多其他下载工具针对当前下载任务的限速之外,还可以针对整个节点级别进行限速、调整负载等。"
+ "In addition to the speed limit for the task like many other download tools, you can also": {
+ "message": "除了像许多其他下载工具针对当前下载任务的限速之外,还可以针对整个节点级别进行"
+ },
+ "limit the speed": {
+ "message": "限速"
+ },
+ "and": {
+ "message": "、"
+ },
+ "adjust the load limit": {
+ "message": "调整负载"
+ },
+ "for the peer level.": {
+ "message": "等。"
},
"CNCF SandBox": {
"message": "CNCF SandBox"
@@ -504,9 +531,18 @@
"efficient, stable, secure": {
"message": "高效、稳定、安全"
},
- "file distribution and image acceleration based on p2p technology to be the best practice and standard solution in cloud native architectures. It is hosted by the Cloud Native Computing Foundation": {
+ "file distribution and image acceleration based on p2p technology to be the best practice and standard solution in cloud native architectures. It is hosted by the": {
"message": "的基于 P2P 技术的文件分发和镜像加速系统,并且是云原生架构中镜像加速领域的标准解决方案以及最佳实践。现在为"
},
+ "Cloud Native Computing Foundation(CNCF)": {
+ "message": "云原生计算机基金会"
+ },
+ "as an": {
+ "message": "托管作为"
+ },
+ "Incubating Level Project.": {
+ "message": "孵化级项目。"
+ },
"theme.NavBar.navAriaLabel": {
"message": "主导航",
"description": "The ARIA label for the main navigation"
@@ -514,5 +550,35 @@
"theme.docs.sidebar.navAriaLabel": {
"message": "文档侧边栏",
"description": "The ARIA label for the sidebar navigation"
+ },
+ "Join the": {
+ "message": "加入"
+ },
+ "Community": {
+ "message": "社区"
+ },
+ "Engage with our ever-growing community to get the latest updates, product support, and more.": {
+ "message": "与我们不断发展的社区互动,获取最新更新、产品支持等。"
+ },
+ "Join our developer security community on Slack Channel.": {
+ "message": "加入我们 Slack 频道上的开发者安全社区。"
+ },
+ "Join our contributors in building the future of Dragonfly.": {
+ "message": "与我们的贡献者一起建设 Dragonfly 的未来。"
+ },
+ "Propose, discuss and debate ideas.": {
+ "message": "提出、讨论和辩论想法。"
+ },
+ "Dragonfly is a": {
+ "message": "Dragonfly 是"
+ },
+ "Efficiency": {
+ "message": "高效"
+ },
+ "Stability": {
+ "message": "稳定"
+ },
+ "Safety": {
+ "message": "安全"
}
}
diff --git a/src/css/custom.css b/src/css/custom.css
index 5c41595f..ca1f72cf 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -30,15 +30,23 @@
--ifm-color-primary-lighter: #359962;
--ifm-color-primary-lightest: #3cad6e;
--ifm-code-font-size: 95%;
- --hero-border-color: rgba(0, 0, 0, 0.1);
- --hero-subtitle-font-color: rgba(0, 0, 0, 0.6);
- --hero-header-shew-color: #dcf9c8;
+ --ifm-menu-color: #000;
+ --hero-header-shew-color: #fcfcfc;
--hero-description-font-color: rgba(0, 0, 0);
--hero-mian-skew-color: #ffffff;
--hero-user-color: #e5fbd6;
--hero-white-color: #ffffff;
--hero-card-content-color: #000;
- --ifm-color-higlight: #ff5722;
+ --ifm-color-higlight: #239b56;
+ --ifm-hero-text-color: -webkit-linear-gradient(315deg, #42d392 25%, #647eff);
+ --ifm-footer-background-color: #172026;
+ --ifm-footer-title-color: #ffffff;
+ --ifm-footer-link-color: #ffffff;
+ --ifm-footer-color: #ffffff;
+ --ifm-menu-color-background-active: #e8faf0;
+ --ifm-menu-link-sublist-icon: url('../../static/img/icon/pointer.svg');
+ --ifm-card-hover-color: #d0ffda;
+ --ifm-dropdown-hover-background-color: #e8faf0;
}
/* For readability concerns, you should choose a lighter palette in dark mode. */
@@ -72,6 +80,81 @@ html[data-theme='dark'] {
no-repeat;
}
+.menu__link--active:not(.menu__link--sublist) {
+ margin-right: 1rem;
+ font-family: __Inter_332a6e ', ' __Inter_Fallback_332a6e;
+}
+
+.menu__link--sublist-caret:after {
+ background: var(--ifm-menu-link-sublist-icon) 50% / 1.4rem 1.4rem;
+}
+
+.menu__caret:before {
+ background: var(--ifm-menu-link-sublist-icon) 50% / 1.4rem 1.4rem;
+}
+
+.table-of-contents__link {
+ font-weight: 500;
+ font-size: 0.9rem;
+}
+
+.footer-logo-wrapper {
+ display: inline-flex;
+ align-items: center;
+ font-family: HFPopin;
+ font-size: 1.3rem;
+ color: var(--ifm-footer-color);
+}
+
+.footer-logo {
+ width: 2rem;
+ margin-right: 0.4rem;
+}
+
+.socials {
+ width: 2rem;
+ margin-right: 0.8rem;
+ transition: opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default);
+ filter: grayscale(1) invert(0.25);
+}
+
+.socials:hover {
+ filter: none;
+}
+
+.footer__col:nth-last-of-type(2) .footer__items {
+ display: flex;
+ text-align: center;
+}
+
+.footer-items:not(:last-child):after {
+ content: '·';
+ margin: 0 1rem;
+ color: #ffffff;
+}
+
+.footer__col:last-of-type .footer__items {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-end;
+}
+
+.footer-content {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.footer__col:nth-last-of-type(2) .footer__item {
+ width: 100%;
+}
+
+.footer-items {
+ color: var(--ifm-footer-color);
+ font-size: 1.2rem;
+ font-weight: 600;
+}
+
.cncf-logo {
background: center no-repeat url('/img/cncf-color.svg');
}
@@ -93,8 +176,6 @@ html[data-theme='dark'] .docusaurus-highlight-code-line {
.dingtalk .dingtalk-label {
color: var(--ifm-footer-link-color);
- line-height: 2;
- cursor: pointer;
}
.dingtalk .dingtalk-img {
@@ -108,16 +189,28 @@ html[data-theme='dark'] .docusaurus-highlight-code-line {
}
.navbar {
- padding: 0.5rem 8rem;
- height: 4.7rem;
- box-shadow: 0 5px 8px -7px rgb(0 0 0 / 50%);
+ height: 4rem;
+ box-shadow: none;
+ position: static;
+}
+
+@media only screen and (min-width: 2049px) and (max-width: 2560px) {
+ .table-of-contents__link {
+ font-weight: 500;
+ font-size: 1.2rem;
+ }
}
@media screen and (max-width: 1440px) {
.navbar {
padding: 0.5rem 3rem;
}
+ .table-of-contents__link {
+ font-weight: 500;
+ font-size: 0.9rem;
+ }
}
+
@media screen and (max-width: 1200px) {
.navbar__item {
font-size: 0.9rem !important;
@@ -133,6 +226,11 @@ html[data-theme='dark'] .docusaurus-highlight-code-line {
font-size: 1.3rem;
}
+b {
+ font-family: HFPopin;
+ font-size: 1.3rem;
+}
+
.navbar__item {
font-family: HFMidoRound;
font-size: 1.1rem;
diff --git a/src/pages/components/BackgroundAnimate.jsx b/src/pages/components/BackgroundAnimate.jsx
index 3be2c537..5ed5cd53 100644
--- a/src/pages/components/BackgroundAnimate.jsx
+++ b/src/pages/components/BackgroundAnimate.jsx
@@ -1,119 +1,37 @@
-import React, { useEffect } from 'react';
-import * as THREE from 'three';
+import React from 'react';
import styles from '../index.module.css';
-const BackgroundAnimate = ()=>{
- useEffect(() => {
- init();
- animate();
- }, []);
-
- let camera, scene, renderer, ribbon;
- const init = () => {
- let container = document.getElementById('container');
- scene = new THREE.Scene();
- camera = new THREE.PerspectiveCamera(75, 1, 0.1, 10000);
- camera.position.z = 2;
- renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
- container.appendChild(renderer.domElement);
- ribbon = new THREE.Mesh(
- new THREE.PlaneGeometry(1.5, 1.5, 128, 128),
- new THREE.ShaderMaterial({
- uniforms: {
- time: { value: 1.0 },
- },
- vertexShader: `
- varying vec3 vEC;
- uniform float time;
-
- float iqhash(float n) {
- return fract(sin(n) * 43758.5453);
- }
-
- float noise(vec3 x) {
- vec3 p = floor(x);
- vec3 f = fract(x);
- f = f * f * (3.0 - 2.0 * f);
- float n = p.x + p.y * 57.0 + 113.0 * p.z;
- return mix(mix(mix(iqhash(n), iqhash(n + 1.0), f.x),
- mix(iqhash(n + 57.0), iqhash(n + 58.0), f.x), f.y),
- mix(mix(iqhash(n + 113.0), iqhash(n + 114.0), f.x),
- mix(iqhash(n + 170.0), iqhash(n + 171.0), f.x), f.y), f.z);
- }
-
- float xmb_noise2(vec3 x) {
- return cos(x.z * 4.0) * cos(x.z + time / 10.0 + x.x);
- }
-
- void main() {
- vec4 pos = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
- vec3 v = vec3(pos.x, 0.0, pos.y);
- vec3 v2 = v;
- vec3 v3 = v;
-
- v.y = xmb_noise2(v2) / 4.0;
-
- v3.x -= time / 5.0;
- v3.x /= 4.0;
-
- v3.z -= time / 10.0;
- v3.y -= time / 100.0;
-
- v.z -= noise(v3 * 7.0) / 15.0;
- v.y -= noise(v3 * 7.0) / 15.0 + cos(v.x * 2.0 - time / 2.0) / 5.0 - 0.3;
-
- vEC = v;
- gl_Position = vec4(v, 1.0);
- }
- `,
- fragmentShader: `
- uniform float time;
- varying vec3 vEC;
-
- void main()
- {
- const vec3 up = vec3(0.0, 0.0, 1.0);
- vec3 x = dFdx(vEC);
- vec3 y = dFdy(vEC);
- vec3 normal = normalize(cross(x, y));
- float c = 1.0 - dot(normal, up);
- c = (1.0 - cos(c * c)) / 1.0;
- gl_FragColor = vec4(1.0, 1.0, 1.0, c * 2.2);
- }
- `,
- extensions: {
- derivatives: true,
- fragDepth: false,
- drawBuffers: false,
- shaderTextureLOD: false,
- },
- side: THREE.DoubleSide,
- transparent: true,
- depthTest: false,
- }),
- );
-
- scene.add(ribbon);
- resize();
- window.addEventListener('resize', resize);
- };
- const resize = () => {
- const { offsetWidth, offsetHeight } = container;
- renderer.setSize(offsetWidth, offsetHeight);
- renderer.setPixelRatio(devicePixelRatio);
- camera.aspect = offsetWidth / offsetHeight;
- camera.updateProjectionMatrix();
- ribbon.scale.set(camera.aspect * 1.55, 0.75, 1);
- };
- const animate = () => {
- ribbon.material.uniforms.time.value += 0.01;
-
- renderer.render(scene, camera);
- requestAnimationFrame(animate);
- };
- return(
-
- )
-}
+const Style = {
+ height: '15vh',
+ width: '100%',
+ position: 'absolute',
+ left: 0,
+ right: 0,
+ bottom: 0,
+ zIndex: 4,
+};
+
+const BackgroundAnimate = () => {
+ return (
+
+ );
+};
export default BackgroundAnimate;
diff --git a/src/pages/components/CardBackground.jsx b/src/pages/components/CardBackground.jsx
deleted file mode 100644
index fdbf19f9..00000000
--- a/src/pages/components/CardBackground.jsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import React from "react";
-import Lottie from "lottie-react";
-import BackgroundAnimation from '../../../static/lottie/card-background.json';
-
-const Style = {
- height: 220,
- width:150,
- position: 'absolute',
- left: '25%',
- zIndex: -1,
- };
-
-const CardBackground = ()=>{
- return(
-
- )
-}
-
-export default CardBackground;
diff --git a/src/pages/components/Consistency.jsx b/src/pages/components/Consistency.jsx
deleted file mode 100644
index 36d184d0..00000000
--- a/src/pages/components/Consistency.jsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from "react";
-import Lottie from "lottie-react";
-import ConsistencyAnimation from '../../../static/lottie/education.json';
-
-const Style = {
- height: 140,
- width:140
- };
-
-const Consistency = ()=>{
- return(
-
- )
-}
-
-export default Consistency;
diff --git a/src/pages/components/Contact.jsx b/src/pages/components/Contact.jsx
index 27ba7a5c..81e38fbf 100644
--- a/src/pages/components/Contact.jsx
+++ b/src/pages/components/Contact.jsx
@@ -3,7 +3,7 @@ import Lottie from "lottie-react";
import ContactAnimation from '../../../static/lottie/contact.json';
const Style = {
- height: 70,
+ height: 58,
width:'100%'
};
diff --git a/src/pages/components/Ecosystem.jsx b/src/pages/components/Ecosystem.jsx
deleted file mode 100644
index b2359d51..00000000
--- a/src/pages/components/Ecosystem.jsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from "react";
-import Lottie from "lottie-react";
-import EcosystemAnimation from '../../../static/lottie/website-optimization.json';
-
-const Style = {
- height: 140,
- width:140
- };
-
-const Ecosystem = ()=>{
- return(
-
- )
-}
-
-export default Ecosystem;
diff --git a/src/pages/components/IsolateAbnormalPeers.jsx b/src/pages/components/IsolateAbnormalPeers.jsx
deleted file mode 100644
index e84c10c5..00000000
--- a/src/pages/components/IsolateAbnormalPeers.jsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from "react";
-import Lottie from "lottie-react";
-import IsolateAnimation from '../../../static/lottie/legal-alert-message.json';
-
-const Style = {
- height: 140,
- width:140
- };
-
-const IsolateAbnormalPeers = ()=>{
- return(
-
- )
-}
-
-export default IsolateAbnormalPeers;
diff --git a/src/pages/components/Noninvasive.jsx b/src/pages/components/Noninvasive.jsx
deleted file mode 100644
index 6cdc4644..00000000
--- a/src/pages/components/Noninvasive.jsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from "react";
-import Lottie from "lottie-react";
-import NoninvasiveAnimation from '../../../static/lottie/data-security.json';
-
-const Style = {
- height: 140,
- width:140
- };
-
-const Noninvasive = ()=>{
- return(
-
- )
-}
-
-export default Noninvasive;
diff --git a/src/pages/components/P2PFileDistribution.jsx b/src/pages/components/P2PFileDistribution.jsx
deleted file mode 100644
index 1c4f03bf..00000000
--- a/src/pages/components/P2PFileDistribution.jsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from "react";
-import Lottie from "lottie-react";
-import DistributionAnimation from '../../../static/lottie/transfer-files.json';
-
-const Style = {
- height: 140,
- width:140
- };
-
-const P2PFileDistribution = ()=>{
- return(
-
- )
-}
-
-export default P2PFileDistribution;
diff --git a/src/pages/components/PeerLevelControl.jsx b/src/pages/components/PeerLevelControl.jsx
deleted file mode 100644
index f59227db..00000000
--- a/src/pages/components/PeerLevelControl.jsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from "react";
-import Lottie from "lottie-react";
-import HostlevelAnimation from '../../../static/lottie/cloud-hosting.json';
-
-const style = {
- height: 140,
- width:140
- };
-
-const PeerLevelControl = ()=>{
- return(
-
- )
-}
-
-export default PeerLevelControl;
diff --git a/src/pages/index.js b/src/pages/index.js
index 4127a3d4..ed4404e6 100644
--- a/src/pages/index.js
+++ b/src/pages/index.js
@@ -3,22 +3,15 @@ import clsx from 'clsx';
import Layout from '@theme/Layout';
import Link from '@docusaurus/Link';
import useBaseUrl from '@docusaurus/useBaseUrl';
-import Translate, { translate } from '@docusaurus/Translate';
+import Translate from '@docusaurus/Translate';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import styles from './index.module.css';
-import GitHubButton from 'react-github-btn';
import BackgroundAnimate from './components/BackgroundAnimate';
-import LottieCardBackground from './components/CardBackground';
import LottieContact from './components/Contact';
-import LottieDistribution from './components/P2PFileDistribution';
-import LottieIsolate from './components/IsolateAbnormalPeers';
-import LottieNoninvasive from './components/Noninvasive';
-import LottieConsistency from './components/Consistency';
-import LottieEcosystem from './components/Ecosystem';
-import LottieHostlevel from './components/PeerLevelControl';
export default function Home() {
const { siteConfig } = useDocusaurusContext();
+
const UserList = [
{
imgURL: 'img/user/alibaba-group.svg',
@@ -69,13 +62,13 @@ export default function Home() {
name: ' China Unicom',
},
{
- imgURL: 'img/user/cloudwise.jpg',
+ imgURL: 'img/user/cloudwise.svg',
alt: 'cloud wise',
herf: 'https://www.cloudwise.cool/',
name: ' Cloud Wise',
},
{
- imgURL: 'img/user/daocloud.png',
+ imgURL: 'img/user/daocloud.svg',
alt: 'dao cloud',
herf: 'https://www.daocloud.io/',
name: 'Dao Cloud',
@@ -141,7 +134,7 @@ export default function Home() {
name: ' Meituan',
},
{
- imgURL: 'img/user/neteasegames.jpeg',
+ imgURL: 'img/user/neteasegames.png',
alt: 'netease games',
herf: 'https://www.neteasegames.com/',
name: ' Net Ease',
@@ -183,6 +176,7 @@ export default function Home() {
name: ' Yahoo',
},
];
+
const PartnersList = [
{ imgURL: 'img/partners/ant-group.svg', alt: 'ant-group' },
{ imgURL: 'img/partners/alibaba-group.svg', alt: 'alibaba-group' },
@@ -191,61 +185,98 @@ export default function Home() {
{ imgURL: 'img/partners/baidu.svg', alt: 'baidu' },
{ imgURL: 'img/partners/didi.svg', alt: 'didi' },
];
- const DevelopmentInfoList = [
+
+ const FeaturesList = [
{
- cardTitle: Dragonfly 1.x,
+ imag: 'img/icon/features-file-distribution.svg',
+ cardTitle: P2P File Distribution,
cardContent: (
-
- In November 2017, the Dragonfly 1.x project was open sourced,and was selected and put into production use by
- many internet companies.
-
+ <>
+ Use P2P technology for file transfer,
+
+ improve download efficiency, and save bandwidth across IDC.
+
+ >
),
},
{
- cardTitle: CNCF SandBox,
+ imag: 'img/icon/features-noninvasive.svg',
+ cardTitle: Noninvasive,
cardContent: (
-
- In October 2018, it entered the CNCF Sandbox, becoming the third project in China to enter the CNCF Sandbox.
-
+ <>
+ Supports
+
+ multiple containers
+
+ for distributing images.
+ >
),
},
{
- cardTitle: CNCF Incubating,
+ imag: 'img/icon/features-isolate-abnormal.svg',
+ cardTitle: Isolate Abnormal Peers,
cardContent: (
-
- In April 2020, the CNCF TOC voted to accept Dragonfly as an official entry into CNCF Incubating.
-
+ <>
+ Automatically isolate abnormal peers to
+
+ improve download stability.
+
+ >
),
},
{
- cardTitle: Dragonfly 2,
+ imag: 'img/icon/features-consistency.svg',
+ cardTitle: Consistency,
cardContent: (
-
- In April 2021, taking the advantages of Dragonfly 1 .x and making a lot of optimizations for known issues.
- Dragonfly 2 is open source.
-
+ <>
+ It can ensure that the same file is
+
+ consistent in peer transmission,
+
+ even if the user does not perform final consistency check.
+ >
),
},
- ];
- const FeaturesList = [
{
- cardAnimationComp: ,
- cardTitle: P2P File Distribution,
+ imag: 'img/icon/features-ecosystem.svg',
+ cardTitle: Ecosystem,
cardContent: (
-
- Use P2P technology for file transfer, improve download efficiency, and save bandwidth across IDC.
-
+ <>
+
+ Harbor
+
+
+ can distribute and preheat images based on the Dragonfly. if image acceleration based on
+
+
+ Nydus
+
+ or
+
+ eStargz
+
+ , Dragonfly can be used to distribute data.
+ >
),
},
{
- cardAnimationComp: ,
- cardTitle: Noninvasive,
- cardContent: Supports multiple containers for distributing images.,
- },
- {
- cardAnimationComp: ,
- cardTitle: Isolate Abnormal Peers,
- cardContent: Automatically isolate abnormal peers to improve download stability.,
+ imag: 'img/icon/features-control.svg',
+ cardTitle: Peer Level Control,
+ cardContent: (
+ <>
+
+ In addition to the speed limit for the task like many other download tools, you can also
+
+
+ limit the speed
+
+ and
+
+ adjust the load limit
+
+ for the peer level.
+ >
+ ),
},
];
@@ -257,7 +288,7 @@ export default function Home() {
-
+
{siteConfig.title}
@@ -267,53 +298,27 @@ export default function Home() {
file distribution and image acceleration based on p2p technology to be the best practice and
- standard solution in cloud native architectures. It is hosted by the Cloud Native Computing
- Foundation
+ standard solution in cloud native architectures. It is hosted by the
- (CNCF)
+ Cloud Native Computing Foundation(CNCF)
+
+ as an
+
+ Incubating Level Project.
- as an Incubating Level Project.
-
- It can ensure that the same file is consistent in peer transmission, even if the user does not
- perform final consistency check.
-
-
-
-
-
-
-
- Ecosystem
-
-
-
- Harbor
-
-
- can distribute and preheat images based on the Dragonfly. if image acceleration based on
-
-
- Nydus
-
- or
-
- eStargz
-
- , Dragonfly can be used to distribute data.
-
-
-
-
-
- Peer Level Control
-
-
-
- In addition to the speed limit for the task like many other download tools, you can also limit the
- speed and adjust the load limit for the peer level.
-
-
-
-
-
-
-
+
+
+
-
- {' '}
- Milestones{' '}
+ Features
-
-
+
+
+
+
+
+
+ Dragonfly contains many features as a image and file distribution system.
+