This is an automated email from the ASF dual-hosted git repository. xuanwo pushed a commit to branch fix-website in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
commit bfbc39e88041587860ef9675cfa760cbfdc50a5b Author: Xuanwo <[email protected]> AuthorDate: Tue May 23 12:15:29 2023 +0800 docs: Remove unlicensed svg Signed-off-by: Xuanwo <[email protected]> --- .../HomepageFeatures/_feature_languages.mdx | 39 +++++++++++++ .../HomepageFeatures/_feature_layers.mdx | 8 +++ .../HomepageFeatures/_feature_services.mdx | 65 ++++++++++++++++++++++ website/src/components/HomepageFeatures/index.js | 42 ++++++-------- website/src/pages/index.js | 11 +--- website/static/img/undraw_adventure.svg | 1 - website/static/img/undraw_i_can_fly.svg | 1 - website/static/img/undraw_outer_space.svg | 1 - 8 files changed, 132 insertions(+), 36 deletions(-) diff --git a/website/src/components/HomepageFeatures/_feature_languages.mdx b/website/src/components/HomepageFeatures/_feature_languages.mdx new file mode 100644 index 00000000..c0e52765 --- /dev/null +++ b/website/src/components/HomepageFeatures/_feature_languages.mdx @@ -0,0 +1,39 @@ +Apache OpenDAL provides [Rust Core](/docs/rust/opendal) and builds different langauge bindings like [Node.js Binding](/docs/nodejs) and [Python Binding](/docs/python). + +> *More bindings like [C](https://github.com/apache/incubator-opendal/blob/main/bindings/c/README.md), [Java](https://github.com/apache/incubator-opendal/blob/main/bindings/java/README.md), [Ruby](https://github.com/apache/incubator-opendal/blob/main/bindings/ruby/README.md) are still working on.* + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +<Tabs> + <TabItem value="rust" label="Rust" default> + +```rust +use opendal::Operator; + +let op = Operator::via_map(Scheme::Fs, HashMap::new()?; +op.read("path/to/file").await?; +``` + + </TabItem> + <TabItem value="node.js" label="Node.js"> + +```javascript +import { Operator } from "opendal"; + +const op = new Operator("fs", {}); +await op.read("path/to/file") +``` + + </TabItem> + <TabItem value="python" label="Python"> + +```python +import opendal + +op = opendal.Operator("fs") +op.read("path/to/file") +``` + + </TabItem> +</Tabs> diff --git a/website/src/components/HomepageFeatures/_feature_layers.mdx b/website/src/components/HomepageFeatures/_feature_layers.mdx new file mode 100644 index 00000000..953d7566 --- /dev/null +++ b/website/src/components/HomepageFeatures/_feature_layers.mdx @@ -0,0 +1,8 @@ +Apache OpenDAL offers native layer support, enabling users to implement middleware or intercept for all operations. + +By using layers, we can: + +- `RetryLayer`: Automatically retry failed requests and resume from the point of failure. +- `ChaosLayer`: Generate simulated chaos for storage services. +- `ConcurrentLimitLayer`: Set concurrent limit while accessing storage services. +- `{Logging|Metrics|Tracing}Layer`: Provide native observability for storage services. diff --git a/website/src/components/HomepageFeatures/_feature_services.mdx b/website/src/components/HomepageFeatures/_feature_services.mdx new file mode 100644 index 00000000..36b3520d --- /dev/null +++ b/website/src/components/HomepageFeatures/_feature_services.mdx @@ -0,0 +1,65 @@ +Apache OpenDAL provides native support for all kinds for storage systems. + +<details> +<summary>Standard Storage Protocols</summary> + +- fs: POSIX alike file system +- ftp: FTP and FTPS +- http: HTTP read-only services +- sftp: [SFTP](https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02) services *working on* +- webdav: [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) Service + +</details> + +<details> +<summary>Object Storage Services</summary> + +- azblob: [Azure Storage Blob](https://azure.microsoft.com/en-us/services/storage/blobs/) services +- gcs: [Google Cloud Storage](https://cloud.google.com/storage) Service +- obs: [Huawei Cloud Object Storage](https://www.huaweicloud.com/intl/en-us/product/obs.html) Service (OBS) +- oss: [Aliyun Object Storage Service](https://www.aliyun.com/product/oss) (OSS) +- s3: [AWS S3](https://aws.amazon.com/s3/) alike services +- supabase: [Supabase Storage](https://supabase.com/docs/guides/storage) Service *working on* +- wasabi: [Wasabi](https://wasabi.com/) Cloud Storage + +</details> + +<details> +<summary>File Storage Services</summary> + +- azdfs: [Azure Data Lake Storage Gen2](https://azure.microsoft.com/en-us/products/storage/data-lake-storage/) services (As known as [abfs](https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-abfs-driver)) +- hdfs: [Hadoop Distributed File System](https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html)(HDFS) +- ipfs: [InterPlanetary File System](https://ipfs.tech/) HTTP Gateway +- ipmfs: [InterPlanetary File System](https://ipfs.tech/) MFS API *working on* +- webhdfs: [WebHDFS](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html) Service + +</details> + +<details> +<summary>Consumer Cloud Storage Service</summary> + +- gdrive: [Google Drive](https://www.google.com/drive/) *working on* +- onedrive: [OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage) *working on* + +</details> + +<details> +<summary>Key-Value Storage Service</summary> + +- dashmap: [dashmap](https://github.com/xacrimon/dashmap) backend +- memory: In memory backend +- redis: [Redis](https://redis.io/) services +- rocksdb: [RocksDB](http://rocksdb.org/) services +- sled: [sled](https://crates.io/crates/sled) backend + +</details> + +<details> +<summary>Cache Storage Service</summary> + +- ghac: [Github Action Cache](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows) Service +- memcached: [Memcached](https://memcached.org/) service +- moka: [moka](https://github.com/moka-rs/moka) backend +- vercel_artifacts: [Vercel Remote Caching](https://vercel.com/docs/concepts/monorepos/remote-caching) Service *working on* + +</details> diff --git a/website/src/components/HomepageFeatures/index.js b/website/src/components/HomepageFeatures/index.js index 0b9a9a78..a3ff8407 100644 --- a/website/src/components/HomepageFeatures/index.js +++ b/website/src/components/HomepageFeatures/index.js @@ -20,54 +20,48 @@ import React from 'react'; import clsx from 'clsx'; import styles from './styles.module.css'; -import Link from "@docusaurus/Link"; +import FeatureLanguages from './_feature_languages.mdx'; +import FeatureServices from './_feature_services.mdx'; +import FeatureLayers from './_feature_layers.mdx'; +import MDXContent from '@theme/MDXContent'; const FeatureList = [ { - title: 'Access data freely', - Svg: require('@site/static/img/undraw_adventure.svg').default, + title: 'Languages', description: ( <> - <div>Access different storage services in the same way</div> - <div>Behavior tests for all services</div> - <div>Cross language/project bindings (working on)</div> + <MDXContent> + <FeatureLanguages /> + </MDXContent> </> ), }, { - title: 'Access data painlessly', - Svg: require('@site/static/img/undraw_i_can_fly.svg').default, + title: 'Services', description: ( <> - <div><b>100%</b> documents covered</div> - <div>Powerful <Link href="https://docs.rs/opendal/latest/opendal/layers/index.html">Layers</Link></div> - <div>Automatic <Link href="https://docs.rs/opendal/latest/opendal/layers/struct.RetryLayer.html">retry</Link> support</div> - <div>Full observability: <Link href="https://docs.rs/opendal/latest/opendal/layers/struct.LoggingLayer.html">logging</Link>, <Link - href="https://docs.rs/opendal/latest/opendal/layers/struct.TracingLayer.html">tracing</Link>, <Link href="https://docs.rs/opendal/latest/opendal/layers/struct.MetricsLayer.html">metrics</Link>.</div> - <div><Link href="https://docs.rs/opendal/latest/opendal/layers/struct.ChaosLayer.html">Native chaos testing</Link></div> + <MDXContent> + <FeatureServices /> + </MDXContent> </> ), }, { - title: 'Access data efficiently', - Svg: require('@site/static/img/undraw_outer_space.svg').default, + title: 'Layers', description: ( <> - <div>Zero cost: Maps to API calls directly</div> - <div>Best effort: Automatically selects best read/seek/next based on services</div> - <div>Avoid extra calls: Reuses metadata when possible</div> + <MDXContent> + <FeatureLayers /> + </MDXContent> </> ), }, ]; -function Feature({Svg, title, description}) { +function Feature({ Svg, title, description }) { return ( <div className={clsx('col col--4')}> - <div className="text--center"> - <Svg className={styles.featureSvg} role="img" /> - </div> - <div className="text--center padding-horiz--md"> + <div className="padding-horiz--md"> <h3>{title}</h3> <div>{description}</div> </div> diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 1f747453..d8006eba 100644 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -32,15 +32,8 @@ function HomepageHeader() { <div className="container"> <h1 className="hero__title">{siteConfig.title}</h1> <p className="hero__subtitle"> - <b>Open</b> <b>D</b>ata <b>A</b>ccess <b>L</b>ayer: Access data <b>freely</b>, <b>painlessly</b>, and <b>efficiently</b> + Open <b>D</b>ata <b>A</b>ccess <b>L</b>ayer: Access data freely </p> - <div className={styles.buttons}> - <a - className="button button--secondary button--lg" - href="/docs/rust/opendal"> - Get Start - </a> - </div> </div> </header> ); @@ -50,7 +43,7 @@ export default function Home() { const { siteConfig } = useDocusaurusContext(); return ( <Layout - description="OpenDAL is the Open Data Access Layer to freely, painlessly, and efficiently access data."> + description="OpenDAL is the Open Data Access Layer to access data freely."> <HomepageHeader /> <main> <HomepageFeatures /> diff --git a/website/static/img/undraw_adventure.svg b/website/static/img/undraw_adventure.svg deleted file mode 100644 index 5cc5116f..00000000 --- a/website/static/img/undraw_adventure.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" width="881.63115" height="587.66492" viewBox="0 0 881.63115 587.66492" xmlns:xlink="http://www.w3.org/1999/xlink"><polygon points="150.925 561.321 164.207 564.918 184.406 515.395 164.801 510.085 150.925 561.321" fill="#ffb6b6"/><path d="M303.0762,731.06123l40.84755,11.06361.13994-.5166a16.47276,16.47276,0,0,0-11.592-20.20547l-.001-.00026-5.92787-7.68168-15.45468,1.89028-3.56573-.9658Z" transform="translate(-156.3731 -156.0101)" [...] \ No newline at end of file diff --git a/website/static/img/undraw_i_can_fly.svg b/website/static/img/undraw_i_can_fly.svg deleted file mode 100644 index eaa024b6..00000000 --- a/website/static/img/undraw_i_can_fly.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" width="1030.57471" height="696.9775" viewBox="0 0 1030.57471 696.9775" xmlns:xlink="http://www.w3.org/1999/xlink"><title>i can fly</title><path d="M831.93752,263.72788a60.64529,60.64529,0,0,1,60.56127-57.47579c1.84313,0,3.66317.09612,5.46442.25711a80.5744,80.5744,0,0,1,139.28388-.06586c1.51962-.11413,3.04946-.19125,4.59825-.19125a60.6453,60.6453,0,0,1,60.56127,57.47579" transform="translate(-84.96231 -101.26125)" fill="#f2f2f2"/ [...] \ No newline at end of file diff --git a/website/static/img/undraw_outer_space.svg b/website/static/img/undraw_outer_space.svg deleted file mode 100644 index 0f93507e..00000000 --- a/website/static/img/undraw_outer_space.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" width="902.41854" height="826.20679" viewBox="0 0 902.41854 826.20679" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M726.94952,696.70767l8.67165,19.44392c-7.04887-1.12221-13.60391,4.89778-13.75121,12.62878s6.13979,15.77421,13.18911,16.8731c-1.34708,6.00231-7.16088,8.64855-12.20732,11.07451s-10.48544,6.44956-10.11,12.84517c.30146,5.13535,4.548,9.66922,9.05769,11.49215s9.24135,1.54272,13.80858,1.23684c-6.921,7.23984-7.59561 [...] \ No newline at end of file
