You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by er...@apache.org on 2026/06/20 13:50:30 UTC

(opendal) branch docs updated (c4a20df2c -> 5838d7387)

This is an automated email from the ASF dual-hosted git repository.

erickguan pushed a change to branch docs
in repository https://gitbox.apache.org/repos/asf/opendal.git


 discard c4a20df2c test(dev): compile-and-run tests for all 8 binding snippets
 discard 116826ec8 feat(dev): add Go, C, C++, Ruby snippet generation for docs
     new 5838d7387 docs(website): add more language snippets

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (c4a20df2c)
            \
             N -- N -- N   refs/heads/docs (5838d7387)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 dev/src/generate/docs.rs     |  477 +--------
 website/data/services.json   | 2410 ++++++++++++++++++++++++++++++++----------
 website/docusaurus.config.js |    2 +-
 3 files changed, 1883 insertions(+), 1006 deletions(-)


(opendal) 01/01: docs(website): add more language snippets

Posted by er...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

erickguan pushed a commit to branch docs
in repository https://gitbox.apache.org/repos/asf/opendal.git

commit 5838d738796cce9474bc7f69f4edb08c2fcc0ddb
Author: Erick Guan <29...@users.noreply.github.com>
AuthorDate: Sat Jun 20 20:42:41 2026 +0800

    docs(website): add more language snippets
---
 dev/src/generate/docs.rs     |  104 +-
 dev/src/generate/java.rs     |    5 +-
 website/data/services.json   | 2410 ++++++++++++++++++++++++++++++++----------
 website/docusaurus.config.js |    2 +-
 4 files changed, 1935 insertions(+), 586 deletions(-)

diff --git a/dev/src/generate/docs.rs b/dev/src/generate/docs.rs
index 2e36b185b..d1181aae6 100644
--- a/dev/src/generate/docs.rs
+++ b/dev/src/generate/docs.rs
@@ -56,6 +56,12 @@ const BINDINGS: &[Binding] = &[
         language: "rust",
         cargo: None,
     },
+    Binding {
+        id: "java",
+        label: "Java",
+        language: "java",
+        cargo: Some("bindings/java/Cargo.toml"),
+    },
     Binding {
         id: "python",
         label: "Python",
@@ -69,10 +75,28 @@ const BINDINGS: &[Binding] = &[
         cargo: Some("bindings/nodejs/Cargo.toml"),
     },
     Binding {
-        id: "java",
-        label: "Java",
-        language: "java",
-        cargo: Some("bindings/java/Cargo.toml"),
+        id: "ruby",
+        label: "Ruby",
+        language: "ruby",
+        cargo: Some("bindings/ruby/Cargo.toml"),
+    },
+    Binding {
+        id: "go",
+        label: "Go",
+        language: "go",
+        cargo: None,
+    },
+    Binding {
+        id: "c",
+        label: "C",
+        language: "c",
+        cargo: None,
+    },
+    Binding {
+        id: "cpp",
+        label: "C++",
+        language: "cpp",
+        cargo: None,
     },
 ];
 
@@ -393,15 +417,23 @@ fn build(required: &[&Field], grouped: &[(&str, Vec<&Field>)], s: &Syntax) -> (S
         if multi {
             full.push_str(&format!("{}{}--- {group} ---\n", s.indent, s.comment));
         }
-        for f in fields {
-            comment_block(f.comments, &mut full);
-            let assign = (s.assign)(f);
-            if f.required {
-                full.push_str(&format!("{}{assign}\n\n", s.indent));
+        let mut config_options = vec![];
+        for field in fields {
+            let mut field_comment = String::new();
+            comment_block(field.comments, &mut field_comment);
+            let assign = (s.assign)(field);
+            // field have block indententation
+            if field.required {
+                config_options.push(format!("{field_comment}{}{assign}", s.indent));
             } else {
-                full.push_str(&format!("{}{}{assign}\n\n", s.indent, s.comment));
+                config_options.push(format!("{field_comment}{}{}{assign}", s.indent, s.comment));
             }
         }
+
+        if !config_options.is_empty() {
+            full.push_str(config_options.join("\n\n").trim_end());
+            full.push('\n');
+        }
     }
     full.push_str(&s.close);
 
@@ -416,7 +448,7 @@ fn render_examples(
 ) -> (String, String) {
     let syntax = match binding {
         "rust" => Syntax {
-            open: format!("use opendal::Operator;\n\nlet op = Operator::via_iter(\"{scheme}\", [\n"),
+            open: format!("use opendal::Operator;\n\nlet operator = Operator::via_iter(\"{scheme}\", [\n"),
             close: "])?;".to_string(),
             indent: "    ",
             comment: "// ",
@@ -429,7 +461,7 @@ fn render_examples(
             },
         },
         "python" => Syntax {
-            open: format!("import opendal\n\nop = opendal.Operator(\n    \"{scheme}\",\n"),
+            open: format!("import opendal\n\noperator = opendal.Operator(\n    \"{scheme}\",\n"),
             close: ")".to_string(),
             indent: "    ",
             comment: "# ",
@@ -437,7 +469,7 @@ fn render_examples(
         },
         "nodejs" => Syntax {
             open: format!(
-                "import {{ Operator }} from \"opendal\";\n\nconst op = new Operator(\"{scheme}\", {{\n"
+                "import {{ Operator }} from \"opendal\";\n\nconst operator = new Operator(\"{scheme}\", {{\n"
             ),
             close: "});".to_string(),
             indent: "  ",
@@ -445,11 +477,51 @@ fn render_examples(
             assign: |f| format!("{}: \"{}\",", f.name, value_of(f)),
         },
         "java" => Syntax {
-            open: "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n".to_string(),
-            close: format!("Operator op = Operator.of(\"{scheme}\", conf);"),
+            open: "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n".to_string(),
+            close: format!("Operator operator = Operator.of(\"{scheme}\", config);"),
             indent: "",
             comment: "// ",
-            assign: |f| format!("conf.put(\"{}\", \"{}\");", f.name, value_of(f)),
+            assign: |f| format!("config.put(\"{}\", \"{}\");", f.name, value_of(f)),
+        },
+        "go" => Syntax {
+            open: format!(
+                "import (\n	\"github.com/apache/opendal-go-services/{scheme}\"\n	opendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator({scheme}.Scheme, opendal.OperatorOptions{{\n",
+            ),
+            close: "})".to_string(),
+            indent: "	",
+            comment: "// ",
+            assign: |f| format!("\"{}\": \"{}\",", f.name, value_of(f)),
+        },
+        "c" => Syntax {
+            open: "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n".to_string(),
+            close: format!(
+                "opendal_result_operator_new result = opendal_operator_new(\"{scheme}\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);"
+            ),
+            indent: "",
+            comment: "// ",
+            assign: |f| {
+                format!(
+                    "opendal_operator_options_set(options, \"{}\", \"{}\");",
+                    f.name,
+                    value_of(f)
+                )
+            },
+        },
+        "cpp" => Syntax {
+            open: "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n".to_string(),
+            close: format!("}};\nopendal::Operator operator(\"{scheme}\", config);"),
+            indent: "    ",
+            comment: "// ",
+            assign: |f| format!("{{\"{}\", \"{}\"}},", f.name, value_of(f)),
+        },
+        "ruby" => Syntax {
+            open: format!(
+                "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"{scheme}\", {{\n"
+            ),
+            close: "})".to_string(),
+            indent: "  ",
+            comment: "# ",
+            assign: |f| format!("\"{}\" => \"{}\",", f.name, value_of(f)),
         },
         other => unreachable!("no renderer for binding {other}"),
     };
diff --git a/dev/src/generate/java.rs b/dev/src/generate/java.rs
index 8eb393e83..c25ea75af 100644
--- a/dev/src/generate/java.rs
+++ b/dev/src/generate/java.rs
@@ -136,10 +136,7 @@ fn make_populate_map(field: ViaDeserialize<Config>) -> Result<String, minijinja:
             field.name,
             case_java_field_name(&field.name)
         ),
-        ConfigType::HashMap => format!(
-            "map.putAll({});",
-            case_java_field_name(&field.name)
-        ),
+        ConfigType::HashMap => format!("map.putAll({});", case_java_field_name(&field.name)),
     };
 
     if field.optional {
diff --git a/website/data/services.json b/website/data/services.json
index 80c78f6e2..6dd142892 100644
--- a/website/data/services.json
+++ b/website/data/services.json
@@ -5,6 +5,11 @@
       "label": "Rust",
       "language": "rust"
     },
+    {
+      "id": "java",
+      "label": "Java",
+      "language": "java"
+    },
     {
       "id": "python",
       "label": "Python",
@@ -16,9 +21,24 @@
       "language": "javascript"
     },
     {
-      "id": "java",
-      "label": "Java",
-      "language": "java"
+      "id": "ruby",
+      "label": "Ruby",
+      "language": "ruby"
+    },
+    {
+      "id": "go",
+      "label": "Go",
+      "language": "go"
+    },
+    {
+      "id": "c",
+      "label": "C",
+      "language": "c"
+    },
+    {
+      "id": "cpp",
+      "label": "C++",
+      "language": "cpp"
     }
   ],
   "services": [
@@ -76,26 +96,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"aliyun-drive\", [\n    (\"drive_type\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"aliyun-drive\", [\n    // The Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The access_token of this backend.\n    //\n    // Solution for client-only purpose. #4733\n    //\n    // Required if no client_id, client_secret and refresh_token are provided.\n    // (\"access_tok [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"aliyun-drive\", [\n    (\"drive_type\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"aliyun-drive\", [\n    // The Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The access_token of this backend.\n    //\n    // Solution for client-only purpose. #4733\n    //\n    // Required if no client_id, client_secret and refresh_token are provided.\n    // (\"acce [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"drive_type\", \"...\");\nOperator operator = Operator.of(\"aliyun-drive\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The Root of this backend.\n//\n// All operations will happen under this root.\n//\n// Default to `/` if not set.\n// config.put(\"root\", \"...\");\n\n// The access_token of this backend.\n//\n// Solution for client-only purpose. #4733\n//\n// Required if no client_id, client_secret and refresh_token are provided.\n// config.put(\"a [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"aliyun-drive\",\n    drive_type=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"aliyun-drive\",\n    # The Root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # Default to `/` if not set.\n    # root=\"...\",\n\n    # The access_token of this backend.\n    #\n    # Solution for client-only purpose. #4733\n    #\n    # Required if no client_id, client_secret and refresh_token are provided.\n    # access_token=\"...\",\n\n    # The client_id of this backend.\n    [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"aliyun-drive\",\n    drive_type=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"aliyun-drive\",\n    # The Root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # Default to `/` if not set.\n    # root=\"...\",\n\n    # The access_token of this backend.\n    #\n    # Solution for client-only purpose. #4733\n    #\n    # Required if no client_id, client_secret and refresh_token are provided.\n    # access_token=\"...\",\n\n    # The client_id of this backend [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"aliyun-drive\", {\n  drive_type: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"aliyun-drive\", {\n  // The Root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // Default to `/` if not set.\n  // root: \"...\",\n\n  // The access_token of this backend.\n  //\n  // Solution for client-only purpose. #4733\n  //\n  // Required if no client_id, client_secret and refresh_token are provided.\n  // access_token: \"...\",\n\n  // The client_id of this bac [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"aliyun-drive\", {\n  drive_type: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"aliyun-drive\", {\n  // The Root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // Default to `/` if not set.\n  // root: \"...\",\n\n  // The access_token of this backend.\n  //\n  // Solution for client-only purpose. #4733\n  //\n  // Required if no client_id, client_secret and refresh_token are provided.\n  // access_token: \"...\",\n\n  // The client_id of th [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"drive_type\", \"...\");\nOperator op = Operator.of(\"aliyun-drive\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The Root of this backend.\n//\n// All operations will happen under this root.\n//\n// Default to `/` if not set.\n// conf.put(\"root\", \"...\");\n\n// The access_token of this backend.\n//\n// Solution for client-only purpose. #4733\n//\n// Required if no client_id, client_secret and refresh_token are provided.\n// conf.put(\"access_ [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/aliyun-drive\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(aliyun-drive.Scheme, opendal.OperatorOptions{\n\t\"drive_type\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/aliyun-drive\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(aliyun-drive.Scheme, opendal.OperatorOptions{\n\t// The Root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t//\n\t// Default to `/` if not set.\n\t// \"root\": \"...\",\n\n\t// The access_token of this backend.\n\t//\n\t// Solution for client-only purpose. #4733\n\t//\n\t// Requir [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"drive_type\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"aliyun-drive\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The Root of this backend.\n//\n// All operations will happen under this root.\n//\n// Default to `/` if not set.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// The access_token of this backend.\n//\n// Solution for client-only purpose. #4733\n//\n// Required if no client_id, client_secret and refresh_token are provided.\n// opendal_operator_options_set [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"drive_type\", \"...\"},\n};\nopendal::Operator operator(\"aliyun-drive\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Default to `/` if not set.\n    // {\"root\", \"...\"},\n\n    // The access_token of this backend.\n    //\n    // Solution for client-only purpose. #4733\n    //\n    // Required if no client_id, client_secret and refresh_token are provided.\n    // {\"access_token\", \"...\"},\n [...]
         }
       ]
     },
@@ -125,26 +163,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"alluxio\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"alluxio\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"alluxio\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"alluxio\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"alluxio\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// config.put(\"root\", \"...\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n// config.put(\"endpoint\", \"...\");\nOperator operator = Operator.of(\"alluxio\",  [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"alluxio\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"alluxio\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # default to `/` if not set.\n    # root=\"...\",\n\n    # endpoint of this backend.\n    #\n    # Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n    # endpoint=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"alluxio\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"alluxio\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # default to `/` if not set.\n    # root=\"...\",\n\n    # endpoint of this backend.\n    #\n    # Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n    # endpoint=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"alluxio\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"alluxio\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // default to `/` if not set.\n  // root: \"...\",\n\n  // endpoint of this backend.\n  //\n  // Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n  // endpoint: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"alluxio\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"alluxio\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // default to `/` if not set.\n  // root: \"...\",\n\n  // endpoint of this backend.\n  //\n  // Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n  // endpoint: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"alluxio\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// conf.put(\"root\", \"...\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n// conf.put(\"endpoint\", \"...\");\n\nOperator op = Operator.of(\"alluxio\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/alluxio\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(alluxio.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/alluxio\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(alluxio.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t//\n\t// default to `/` if not set.\n\t// \"root\": \"...\",\n\n\t// endpoint of this backend.\n\t//\n\t// Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n\t// \"endpoin [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"alluxio\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\nopendal_result_operator_new resu [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"alluxio\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // {\"root\", \"...\"},\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, mostly like `http://127.0.0.1:39999`.\n    // {\"endpoint\", \"...\"},\n};\nopendal::Operator operator(\"alluxio\", config);"
         }
       ]
     },
@@ -241,26 +297,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"azblob\", [\n    (\"container\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"azblob\", [\n    // The root of Azblob service backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The container name of Azblob service backend.\n    (\"container\".to_string(), \"...\".to_string()),\n\n    // The endpoint of Azblob service backend.\n    //\n    // Endpoint must be full uri, e.g.\n    //\n    // - Azblob: `https://acco [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"azblob\", [\n    (\"container\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"azblob\", [\n    // The root of Azblob service backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The container name of Azblob service backend.\n    (\"container\".to_string(), \"...\".to_string()),\n\n    // The endpoint of Azblob service backend.\n    //\n    // Endpoint must be full uri, e.g.\n    //\n    // - Azblob: `https: [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"container\", \"...\");\nOperator operator = Operator.of(\"azblob\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The root of Azblob service backend.\n//\n// All operations will happen under this root.\n// config.put(\"root\", \"...\");\n\n// The container name of Azblob service backend.\nconfig.put(\"container\", \"...\");\n\n// The endpoint of Azblob service backend.\n//\n// Endpoint must be full uri, e.g.\n//\n// - Azblob: `https://accountna [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"azblob\",\n    container=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"azblob\",\n    # The root of Azblob service backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # The container name of Azblob service backend.\n    container=\"...\",\n\n    # The endpoint of Azblob service backend.\n    #\n    # Endpoint must be full uri, e.g.\n    #\n    # - Azblob: `https://accountname.blob.core.windows.net`\n    # - Azurite: `http://127.0.0.1:10000/devstorea [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"azblob\",\n    container=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"azblob\",\n    # The root of Azblob service backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # The container name of Azblob service backend.\n    container=\"...\",\n\n    # The endpoint of Azblob service backend.\n    #\n    # Endpoint must be full uri, e.g.\n    #\n    # - Azblob: `https://accountname.blob.core.windows.net`\n    # - Azurite: `http://127.0.0.1:10000/dev [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"azblob\", {\n  container: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"azblob\", {\n  // The root of Azblob service backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // The container name of Azblob service backend.\n  container: \"...\",\n\n  // The endpoint of Azblob service backend.\n  //\n  // Endpoint must be full uri, e.g.\n  //\n  // - Azblob: `https://accountname.blob.core.windows.net`\n  // - Azurite: `http://127.0.0.1:10000 [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"azblob\", {\n  container: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"azblob\", {\n  // The root of Azblob service backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // The container name of Azblob service backend.\n  container: \"...\",\n\n  // The endpoint of Azblob service backend.\n  //\n  // Endpoint must be full uri, e.g.\n  //\n  // - Azblob: `https://accountname.blob.core.windows.net`\n  // - Azurite: `http://127.0.0.1 [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"container\", \"...\");\nOperator op = Operator.of(\"azblob\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The root of Azblob service backend.\n//\n// All operations will happen under this root.\n// conf.put(\"root\", \"...\");\n\n// The container name of Azblob service backend.\nconf.put(\"container\", \"...\");\n\n// The endpoint of Azblob service backend.\n//\n// Endpoint must be full uri, e.g.\n//\n// - Azblob: `https://accountname.blo [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"azblob\", {\n  \"container\" => \"...\",\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"azblob\", {\n  # The root of Azblob service backend.\n  #\n  # All operations will happen under this root.\n  # \"root\" => \"...\",\n\n  # The container name of Azblob service backend.\n  \"container\" => \"...\",\n\n  # The endpoint of Azblob service backend.\n  #\n  # Endpoint must be full uri, e.g.\n  #\n  # - Azblob: `https://accountname.blob.core.windows.net`\n  # - Azurite: `http://127.0.0.1:10000/devstor [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/azblob\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(azblob.Scheme, opendal.OperatorOptions{\n\t\"container\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/azblob\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(azblob.Scheme, opendal.OperatorOptions{\n\t// The root of Azblob service backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// The container name of Azblob service backend.\n\t\"container\": \"...\",\n\n\t// The endpoint of Azblob service backend.\n\t//\n\t// Endpoint mus [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"container\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"azblob\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The root of Azblob service backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// The container name of Azblob service backend.\nopendal_operator_options_set(options, \"container\", \"...\");\n\n// The endpoint of Azblob service backend.\n//\n// Endpoint must be full uri, e.g.\n//\n// - Azblob: `http [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"container\", \"...\"},\n};\nopendal::Operator operator(\"azblob\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The root of Azblob service backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // The container name of Azblob service backend.\n    {\"container\", \"...\"},\n\n    // The endpoint of Azblob service backend.\n    //\n    // Endpoint must be full uri, e.g.\n    //\n    // - Azblob: `https://accountname.blob.core.windows.net`\n    [...]
         }
       ]
     },
@@ -353,26 +433,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"azdls\", [\n    (\"filesystem\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"azdls\", [\n    // Root of this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Filesystem name of this backend.\n    (\"filesystem\".to_string(), \"...\".to_string()),\n\n    // Endpoint of this backend.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Account name of this backend.\n    // (\"account_name\".to_string(), \"...\".to_string()),\n\n    // Account key of this  [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"azdls\", [\n    (\"filesystem\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"azdls\", [\n    // Root of this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Filesystem name of this backend.\n    (\"filesystem\".to_string(), \"...\".to_string()),\n\n    // Endpoint of this backend.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Account name of this backend.\n    // (\"account_name\".to_string(), \"...\".to_string()),\n\n    // Account key of [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"filesystem\", \"...\");\nOperator operator = Operator.of(\"azdls\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root of this backend.\n// config.put(\"root\", \"...\");\n\n// Filesystem name of this backend.\nconfig.put(\"filesystem\", \"...\");\n\n// Endpoint of this backend.\n// config.put(\"endpoint\", \"...\");\n\n// Account name of this backend.\n// config.put(\"account_name\", \"...\");\n\n// Account key of this backend.\n// - required  [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"azdls\",\n    filesystem=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"azdls\",\n    # Root of this backend.\n    # root=\"...\",\n\n    # Filesystem name of this backend.\n    filesystem=\"...\",\n\n    # Endpoint of this backend.\n    # endpoint=\"...\",\n\n    # Account name of this backend.\n    # account_name=\"...\",\n\n    # Account key of this backend.\n    # - required for shared_key authentication\n    # account_key=\"...\",\n\n    # client_secret\n    # The client secret of the se [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"azdls\",\n    filesystem=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"azdls\",\n    # Root of this backend.\n    # root=\"...\",\n\n    # Filesystem name of this backend.\n    filesystem=\"...\",\n\n    # Endpoint of this backend.\n    # endpoint=\"...\",\n\n    # Account name of this backend.\n    # account_name=\"...\",\n\n    # Account key of this backend.\n    # - required for shared_key authentication\n    # account_key=\"...\",\n\n    # client_secret\n    # The client secret of  [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"azdls\", {\n  filesystem: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"azdls\", {\n  // Root of this backend.\n  // root: \"...\",\n\n  // Filesystem name of this backend.\n  filesystem: \"...\",\n\n  // Endpoint of this backend.\n  // endpoint: \"...\",\n\n  // Account name of this backend.\n  // account_name: \"...\",\n\n  // Account key of this backend.\n  // - required for shared_key authentication\n  // account_key: \"...\",\n\n  // client_secret\n  // The client secr [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"azdls\", {\n  filesystem: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"azdls\", {\n  // Root of this backend.\n  // root: \"...\",\n\n  // Filesystem name of this backend.\n  filesystem: \"...\",\n\n  // Endpoint of this backend.\n  // endpoint: \"...\",\n\n  // Account name of this backend.\n  // account_name: \"...\",\n\n  // Account key of this backend.\n  // - required for shared_key authentication\n  // account_key: \"...\",\n\n  // client_secret\n  // The clien [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"filesystem\", \"...\");\nOperator op = Operator.of(\"azdls\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root of this backend.\n// conf.put(\"root\", \"...\");\n\n// Filesystem name of this backend.\nconf.put(\"filesystem\", \"...\");\n\n// Endpoint of this backend.\n// conf.put(\"endpoint\", \"...\");\n\n// Account name of this backend.\n// conf.put(\"account_name\", \"...\");\n\n// Account key of this backend.\n// - required for shared [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"azdls\", {\n  \"filesystem\" => \"...\",\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"azdls\", {\n  # Root of this backend.\n  # \"root\" => \"...\",\n\n  # Filesystem name of this backend.\n  \"filesystem\" => \"...\",\n\n  # Endpoint of this backend.\n  # \"endpoint\" => \"...\",\n\n  # Account name of this backend.\n  # \"account_name\" => \"...\",\n\n  # Account key of this backend.\n  # - required for shared_key authentication\n  # \"account_key\" => \"...\",\n\n  # client_secret\n  # The cl [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/azdls\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(azdls.Scheme, opendal.OperatorOptions{\n\t\"filesystem\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/azdls\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(azdls.Scheme, opendal.OperatorOptions{\n\t// Root of this backend.\n\t// \"root\": \"...\",\n\n\t// Filesystem name of this backend.\n\t\"filesystem\": \"...\",\n\n\t// Endpoint of this backend.\n\t// \"endpoint\": \"...\",\n\n\t// Account name of this backend.\n\t// \"account_name\": \"...\",\n\n\t// Account key of [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"filesystem\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"azdls\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root of this backend.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Filesystem name of this backend.\nopendal_operator_options_set(options, \"filesystem\", \"...\");\n\n// Endpoint of this backend.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// Account name of this backend.\n// opendal_operator_options_set(options, \"account_n [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"filesystem\", \"...\"},\n};\nopendal::Operator operator(\"azdls\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root of this backend.\n    // {\"root\", \"...\"},\n\n    // Filesystem name of this backend.\n    {\"filesystem\", \"...\"},\n\n    // Endpoint of this backend.\n    // {\"endpoint\", \"...\"},\n\n    // Account name of this backend.\n    // {\"account_name\", \"...\"},\n\n    // Account key of this backend.\n    // - required for shared_key authentication\n    // {\"account_key\" [...]
         }
       ]
     },
@@ -430,26 +534,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"azfile\", [\n    (\"share_name\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"azfile\", [\n    // The root path for azfile.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The endpoint for azfile.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The share name for azfile.\n    (\"share_name\".to_string(), \"...\".to_string()),\n\n    // The account name for azfile.\n    // (\"account_name\".to_string(), \"...\".to_string()),\n\n    // The account key for azf [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"azfile\", [\n    (\"share_name\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"azfile\", [\n    // The root path for azfile.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The endpoint for azfile.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The share name for azfile.\n    (\"share_name\".to_string(), \"...\".to_string()),\n\n    // The account name for azfile.\n    // (\"account_name\".to_string(), \"...\".to_string()),\n\n    // The account key f [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"share_name\", \"...\");\nOperator operator = Operator.of(\"azfile\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The root path for azfile.\n// config.put(\"root\", \"...\");\n\n// The endpoint for azfile.\n// config.put(\"endpoint\", \"...\");\n\n// The share name for azfile.\nconfig.put(\"share_name\", \"...\");\n\n// The account name for azfile.\n// config.put(\"account_name\", \"...\");\n\n// The account key for azfile.\n// config.put(\"acc [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"azfile\",\n    share_name=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"azfile\",\n    # The root path for azfile.\n    # root=\"...\",\n\n    # The endpoint for azfile.\n    # endpoint=\"...\",\n\n    # The share name for azfile.\n    share_name=\"...\",\n\n    # The account name for azfile.\n    # account_name=\"...\",\n\n    # The account key for azfile.\n    # account_key=\"...\",\n\n    # The sas token for azfile.\n    # sas_token=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"azfile\",\n    share_name=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"azfile\",\n    # The root path for azfile.\n    # root=\"...\",\n\n    # The endpoint for azfile.\n    # endpoint=\"...\",\n\n    # The share name for azfile.\n    share_name=\"...\",\n\n    # The account name for azfile.\n    # account_name=\"...\",\n\n    # The account key for azfile.\n    # account_key=\"...\",\n\n    # The sas token for azfile.\n    # sas_token=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"azfile\", {\n  share_name: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"azfile\", {\n  // The root path for azfile.\n  // root: \"...\",\n\n  // The endpoint for azfile.\n  // endpoint: \"...\",\n\n  // The share name for azfile.\n  share_name: \"...\",\n\n  // The account name for azfile.\n  // account_name: \"...\",\n\n  // The account key for azfile.\n  // account_key: \"...\",\n\n  // The sas token for azfile.\n  // sas_token: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"azfile\", {\n  share_name: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"azfile\", {\n  // The root path for azfile.\n  // root: \"...\",\n\n  // The endpoint for azfile.\n  // endpoint: \"...\",\n\n  // The share name for azfile.\n  share_name: \"...\",\n\n  // The account name for azfile.\n  // account_name: \"...\",\n\n  // The account key for azfile.\n  // account_key: \"...\",\n\n  // The sas token for azfile.\n  // sas_token: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"share_name\", \"...\");\nOperator op = Operator.of(\"azfile\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The root path for azfile.\n// conf.put(\"root\", \"...\");\n\n// The endpoint for azfile.\n// conf.put(\"endpoint\", \"...\");\n\n// The share name for azfile.\nconf.put(\"share_name\", \"...\");\n\n// The account name for azfile.\n// conf.put(\"account_name\", \"...\");\n\n// The account key for azfile.\n// conf.put(\"account_key\",  [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"azfile\", {\n  \"share_name\" => \"...\",\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"azfile\", {\n  # The root path for azfile.\n  # \"root\" => \"...\",\n\n  # The endpoint for azfile.\n  # \"endpoint\" => \"...\",\n\n  # The share name for azfile.\n  \"share_name\" => \"...\",\n\n  # The account name for azfile.\n  # \"account_name\" => \"...\",\n\n  # The account key for azfile.\n  # \"account_key\" => \"...\",\n\n  # The sas token for azfile.\n  # \"sas_token\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/azfile\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(azfile.Scheme, opendal.OperatorOptions{\n\t\"share_name\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/azfile\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(azfile.Scheme, opendal.OperatorOptions{\n\t// The root path for azfile.\n\t// \"root\": \"...\",\n\n\t// The endpoint for azfile.\n\t// \"endpoint\": \"...\",\n\n\t// The share name for azfile.\n\t\"share_name\": \"...\",\n\n\t// The account name for azfile.\n\t// \"account_name\": \"...\",\n\n\t// The account key  [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"share_name\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"azfile\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The root path for azfile.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// The endpoint for azfile.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// The share name for azfile.\nopendal_operator_options_set(options, \"share_name\", \"...\");\n\n// The account name for azfile.\n// opendal_operator_options_set(options, \"account_name\ [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"share_name\", \"...\"},\n};\nopendal::Operator operator(\"azfile\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The root path for azfile.\n    // {\"root\", \"...\"},\n\n    // The endpoint for azfile.\n    // {\"endpoint\", \"...\"},\n\n    // The share name for azfile.\n    {\"share_name\", \"...\"},\n\n    // The account name for azfile.\n    // {\"account_name\", \"...\"},\n\n    // The account key for azfile.\n    // {\"account_key\", \"...\"},\n\n    // The sas token for azfile.\n    / [...]
         }
       ]
     },
@@ -500,26 +628,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"b2\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n    (\"bucket_id\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"b2\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // keyID of this backend.\n    //\n    // - If application_key_id is set, we will take user's input first.\n    // - If not, we will try to load it from environment.\n    // (\"application_key_id\".to_string(), \"...\".to_string()),\n\n    // applicationKey o [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"b2\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n    (\"bucket_id\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"b2\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // keyID of this backend.\n    //\n    // - If application_key_id is set, we will take user's input first.\n    // - If not, we will try to load it from environment.\n    // (\"application_key_id\".to_string(), \"...\".to_string()),\n\n    // applicatio [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"bucket\", \"...\");\nconfig.put(\"bucket_id\", \"...\");\nOperator operator = Operator.of(\"b2\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// config.put(\"root\", \"...\");\n\n// keyID of this backend.\n//\n// - If application_key_id is set, we will take user's input first.\n// - If not, we will try to load it from environment.\n// config.put(\"application_key_id\", \"...\");\n\n// applicationKe [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"b2\",\n    bucket=\"...\",\n    bucket_id=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"b2\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # keyID of this backend.\n    #\n    # - If application_key_id is set, we will take user's input first.\n    # - If not, we will try to load it from environment.\n    # application_key_id=\"...\",\n\n    # applicationKey of this backend.\n    #\n    # - If application_key is set, we will take user's inp [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"b2\",\n    bucket=\"...\",\n    bucket_id=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"b2\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # keyID of this backend.\n    #\n    # - If application_key_id is set, we will take user's input first.\n    # - If not, we will try to load it from environment.\n    # application_key_id=\"...\",\n\n    # applicationKey of this backend.\n    #\n    # - If application_key is set, we will take user [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"b2\", {\n  bucket: \"...\",\n  bucket_id: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"b2\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // keyID of this backend.\n  //\n  // - If application_key_id is set, we will take user's input first.\n  // - If not, we will try to load it from environment.\n  // application_key_id: \"...\",\n\n  // applicationKey of this backend.\n  //\n  // - If application_key is set, we will take [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"b2\", {\n  bucket: \"...\",\n  bucket_id: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"b2\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // keyID of this backend.\n  //\n  // - If application_key_id is set, we will take user's input first.\n  // - If not, we will try to load it from environment.\n  // application_key_id: \"...\",\n\n  // applicationKey of this backend.\n  //\n  // - If application_key is set, we wil [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"bucket\", \"...\");\nconf.put(\"bucket_id\", \"...\");\nOperator op = Operator.of(\"b2\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// conf.put(\"root\", \"...\");\n\n// keyID of this backend.\n//\n// - If application_key_id is set, we will take user's input first.\n// - If not, we will try to load it from environment.\n// conf.put(\"application_key_id\", \"...\");\n\n// applicationKey of t [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/b2\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(b2.Scheme, opendal.OperatorOptions{\n\t\"bucket\": \"...\",\n\t\"bucket_id\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/b2\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(b2.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// keyID of this backend.\n\t//\n\t// - If application_key_id is set, we will take user's input first.\n\t// - If not, we will try to load it from environment.\n\t// \"ap [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"bucket\", \"...\");\nopendal_operator_options_set(options, \"bucket_id\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"b2\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// keyID of this backend.\n//\n// - If application_key_id is set, we will take user's input first.\n// - If not, we will try to load it from environment.\n// opendal_operator_options_set(options, \"application_key_id\", \"...\");\n\n//  [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"bucket\", \"...\"},\n    {\"bucket_id\", \"...\"},\n};\nopendal::Operator operator(\"b2\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // keyID of this backend.\n    //\n    // - If application_key_id is set, we will take user's input first.\n    // - If not, we will try to load it from environment.\n    // {\"application_key_id\", \"...\"},\n\n    // applicationKey of this backend.\n    //\n    // [...]
         }
       ]
     },
@@ -542,26 +688,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"cacache\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"cacache\", [\n    // That path to the cacache data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"cacache\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"cacache\", [\n    // That path to the cacache data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"cacache\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// That path to the cacache data directory.\n// config.put(\"datadir\", \"...\");\nOperator operator = Operator.of(\"cacache\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"cacache\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"cacache\",\n    # That path to the cacache data directory.\n    # datadir=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"cacache\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"cacache\",\n    # That path to the cacache data directory.\n    # datadir=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"cacache\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"cacache\", {\n  // That path to the cacache data directory.\n  // datadir: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"cacache\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"cacache\", {\n  // That path to the cacache data directory.\n  // datadir: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"cacache\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// That path to the cacache data directory.\n// conf.put(\"datadir\", \"...\");\n\nOperator op = Operator.of(\"cacache\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/cacache\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(cacache.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/cacache\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(cacache.Scheme, opendal.OperatorOptions{\n\t// That path to the cacache data directory.\n\t// \"datadir\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"cacache\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// That path to the cacache data directory.\n// opendal_operator_options_set(options, \"datadir\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"cacache\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);"
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"cacache\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // That path to the cacache data directory.\n    // {\"datadir\", \"...\"},\n};\nopendal::Operator operator(\"cacache\", config);"
         }
       ]
     },
@@ -612,14 +776,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"cloudflare-kv\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"cloudflare-kv\", [\n    // The token used to authenticate with CloudFlare.\n    // (\"api_token\".to_string(), \"...\".to_string()),\n\n    // The account ID used to authenticate with CloudFlare. Used as URI path parameter.\n    // (\"account_id\".to_string(), \"...\".to_string()),\n\n    // The namespace ID. Used as URI path parameter.\n    // (\"namespace_id\".to_string(), \"...\".to_string()),\n\n    // The def [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"cloudflare-kv\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"cloudflare-kv\", [\n    // The token used to authenticate with CloudFlare.\n    // (\"api_token\".to_string(), \"...\".to_string()),\n\n    // The account ID used to authenticate with CloudFlare. Used as URI path parameter.\n    // (\"account_id\".to_string(), \"...\".to_string()),\n\n    // The namespace ID. Used as URI path parameter.\n    // (\"namespace_id\".to_string(), \"...\".to_string()),\n\n    // T [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"cloudflare-kv\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"cloudflare-kv\",\n    # The token used to authenticate with CloudFlare.\n    # api_token=\"...\",\n\n    # The account ID used to authenticate with CloudFlare. Used as URI path parameter.\n    # account_id=\"...\",\n\n    # The namespace ID. Used as URI path parameter.\n    # namespace_id=\"...\",\n\n    # The default ttl for write operations.\n    # default_ttl=\"10s\",\n\n    # Root within this backend.\n    # root=\".. [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"cloudflare-kv\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"cloudflare-kv\",\n    # The token used to authenticate with CloudFlare.\n    # api_token=\"...\",\n\n    # The account ID used to authenticate with CloudFlare. Used as URI path parameter.\n    # account_id=\"...\",\n\n    # The namespace ID. Used as URI path parameter.\n    # namespace_id=\"...\",\n\n    # The default ttl for write operations.\n    # default_ttl=\"10s\",\n\n    # Root within this backend.\n    # roo [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/cloudflare-kv\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(cloudflare-kv.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/cloudflare-kv\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(cloudflare-kv.Scheme, opendal.OperatorOptions{\n\t// The token used to authenticate with CloudFlare.\n\t// \"api_token\": \"...\",\n\n\t// The account ID used to authenticate with CloudFlare. Used as URI path parameter.\n\t// \"account_id\": \"...\",\n\n\t// The namespace ID. Used as URI path parameter.\n\t/ [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"cloudflare-kv\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The token used to authenticate with CloudFlare.\n// opendal_operator_options_set(options, \"api_token\", \"...\");\n\n// The account ID used to authenticate with CloudFlare. Used as URI path parameter.\n// opendal_operator_options_set(options, \"account_id\", \"...\");\n\n// The namespace ID. Used as URI path parameter.\n// opendal_operator_options_set(options, \"namespace [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"cloudflare-kv\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The token used to authenticate with CloudFlare.\n    // {\"api_token\", \"...\"},\n\n    // The account ID used to authenticate with CloudFlare. Used as URI path parameter.\n    // {\"account_id\", \"...\"},\n\n    // The namespace ID. Used as URI path parameter.\n    // {\"namespace_id\", \"...\"},\n\n    // The default ttl for write operations.\n    // {\"default_ttl\", \"10s\"}, [...]
         }
       ]
     },
@@ -642,20 +824,38 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"compfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"compfs\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"compfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"compfs\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"compfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"compfs\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"compfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"compfs\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"compfs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"compfs\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"compfs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"compfs\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n});"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/compfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(compfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/compfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(compfs.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"compfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"compfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);"
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"compfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"compfs\", config);"
         }
       ]
     },
@@ -731,26 +931,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"cos\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"cos\", [\n    // Root of this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint of this backend.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Secret ID of this backend.\n    // (\"secret_id\".to_string(), \"...\".to_string()),\n\n    // Secret key of this backend.\n    // (\"secret_key\".to_string(), \"...\".to_string()),\n\n    // Security token (a.k.a. session [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"cos\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"cos\", [\n    // Root of this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint of this backend.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Secret ID of this backend.\n    // (\"secret_id\".to_string(), \"...\".to_string()),\n\n    // Secret key of this backend.\n    // (\"secret_key\".to_string(), \"...\".to_string()),\n\n    // Security token (a.k.a. s [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"cos\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root of this backend.\n// config.put(\"root\", \"...\");\n\n// Endpoint of this backend.\n// config.put(\"endpoint\", \"...\");\n\n// Secret ID of this backend.\n// config.put(\"secret_id\", \"...\");\n\n// Secret key of this backend.\n// config.put(\"secret_key\", \"...\");\n\n// Security token (a.k.a. session token) of this backen [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"cos\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"cos\",\n    # Root of this backend.\n    # root=\"...\",\n\n    # Endpoint of this backend.\n    # endpoint=\"...\",\n\n    # Secret ID of this backend.\n    # secret_id=\"...\",\n\n    # Secret key of this backend.\n    # secret_key=\"...\",\n\n    # Security token (a.k.a. session token) of this backend.\n    #\n    # This is used for temporary credentials issued by Tencent Cloud STS\n    # (e.g. `GetFederationToken` / ` [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"cos\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"cos\",\n    # Root of this backend.\n    # root=\"...\",\n\n    # Endpoint of this backend.\n    # endpoint=\"...\",\n\n    # Secret ID of this backend.\n    # secret_id=\"...\",\n\n    # Secret key of this backend.\n    # secret_key=\"...\",\n\n    # Security token (a.k.a. session token) of this backend.\n    #\n    # This is used for temporary credentials issued by Tencent Cloud STS\n    # (e.g. `GetFederationToke [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"cos\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"cos\", {\n  // Root of this backend.\n  // root: \"...\",\n\n  // Endpoint of this backend.\n  // endpoint: \"...\",\n\n  // Secret ID of this backend.\n  // secret_id: \"...\",\n\n  // Secret key of this backend.\n  // secret_key: \"...\",\n\n  // Security token (a.k.a. session token) of this backend.\n  //\n  // This is used for temporary credentials issued by Tencent Cloud STS\n  // (e.g. `GetFederat [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"cos\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"cos\", {\n  // Root of this backend.\n  // root: \"...\",\n\n  // Endpoint of this backend.\n  // endpoint: \"...\",\n\n  // Secret ID of this backend.\n  // secret_id: \"...\",\n\n  // Secret key of this backend.\n  // secret_key: \"...\",\n\n  // Security token (a.k.a. session token) of this backend.\n  //\n  // This is used for temporary credentials issued by Tencent Cloud STS\n  // (e.g. `GetF [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"cos\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root of this backend.\n// conf.put(\"root\", \"...\");\n\n// Endpoint of this backend.\n// conf.put(\"endpoint\", \"...\");\n\n// Secret ID of this backend.\n// conf.put(\"secret_id\", \"...\");\n\n// Secret key of this backend.\n// conf.put(\"secret_key\", \"...\");\n\n// Security token (a.k.a. session token) of this backend.\n//\n// [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"cos\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"cos\", {\n  # Root of this backend.\n  # \"root\" => \"...\",\n\n  # Endpoint of this backend.\n  # \"endpoint\" => \"...\",\n\n  # Secret ID of this backend.\n  # \"secret_id\" => \"...\",\n\n  # Secret key of this backend.\n  # \"secret_key\" => \"...\",\n\n  # Security token (a.k.a. session token) of this backend.\n  #\n  # This is used for temporary credentials issued by Tencent Cloud STS\n  # (e.g. `GetFede [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/cos\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(cos.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/cos\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(cos.Scheme, opendal.OperatorOptions{\n\t// Root of this backend.\n\t// \"root\": \"...\",\n\n\t// Endpoint of this backend.\n\t// \"endpoint\": \"...\",\n\n\t// Secret ID of this backend.\n\t// \"secret_id\": \"...\",\n\n\t// Secret key of this backend.\n\t// \"secret_key\": \"...\",\n\n\t// Security token (a.k.a. ses [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"cos\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root of this backend.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Endpoint of this backend.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// Secret ID of this backend.\n// opendal_operator_options_set(options, \"secret_id\", \"...\");\n\n// Secret key of this backend.\n// opendal_operator_options_set(options, \"secret_key\", \ [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"cos\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root of this backend.\n    // {\"root\", \"...\"},\n\n    // Endpoint of this backend.\n    // {\"endpoint\", \"...\"},\n\n    // Secret ID of this backend.\n    // {\"secret_id\", \"...\"},\n\n    // Secret key of this backend.\n    // {\"secret_key\", \"...\"},\n\n    // Security token (a.k.a. session token) of this backend.\n    //\n    // This is used for temporary credentials  [...]
         }
       ]
     },
@@ -815,14 +1039,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"d1\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"d1\", [\n    // Set the token of cloudflare api.\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // Set the account id of cloudflare api.\n    // (\"account_id\".to_string(), \"...\".to_string()),\n\n    // Set the database id of cloudflare api.\n    // (\"database_id\".to_string(), \"...\".to_string()),\n\n    // Set the working directory of OpenDAL.\n    // (\"root\".to_string(), \"...\".to_string() [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"d1\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"d1\", [\n    // Set the token of cloudflare api.\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // Set the account id of cloudflare api.\n    // (\"account_id\".to_string(), \"...\".to_string()),\n\n    // Set the database id of cloudflare api.\n    // (\"database_id\".to_string(), \"...\".to_string()),\n\n    // Set the working directory of OpenDAL.\n    // (\"root\".to_string(), \"...\".to_st [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"d1\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"d1\",\n    # Set the token of cloudflare api.\n    # token=\"...\",\n\n    # Set the account id of cloudflare api.\n    # account_id=\"...\",\n\n    # Set the database id of cloudflare api.\n    # database_id=\"...\",\n\n    # Set the working directory of OpenDAL.\n    # root=\"...\",\n\n    # Set the table of D1 Database.\n    # table=\"...\",\n\n    # Set the key field of D1 Database.\n    # key_field=\"...\",\n\n    #  [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"d1\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"d1\",\n    # Set the token of cloudflare api.\n    # token=\"...\",\n\n    # Set the account id of cloudflare api.\n    # account_id=\"...\",\n\n    # Set the database id of cloudflare api.\n    # database_id=\"...\",\n\n    # Set the working directory of OpenDAL.\n    # root=\"...\",\n\n    # Set the table of D1 Database.\n    # table=\"...\",\n\n    # Set the key field of D1 Database.\n    # key_field=\"...\",\n\n [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/d1\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(d1.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/d1\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(d1.Scheme, opendal.OperatorOptions{\n\t// Set the token of cloudflare api.\n\t// \"token\": \"...\",\n\n\t// Set the account id of cloudflare api.\n\t// \"account_id\": \"...\",\n\n\t// Set the database id of cloudflare api.\n\t// \"database_id\": \"...\",\n\n\t// Set the working directory of OpenDAL.\n\t// \"root\": \ [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"d1\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Set the token of cloudflare api.\n// opendal_operator_options_set(options, \"token\", \"...\");\n\n// Set the account id of cloudflare api.\n// opendal_operator_options_set(options, \"account_id\", \"...\");\n\n// Set the database id of cloudflare api.\n// opendal_operator_options_set(options, \"database_id\", \"...\");\n\n// Set the working directory of OpenDAL.\n// opend [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"d1\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Set the token of cloudflare api.\n    // {\"token\", \"...\"},\n\n    // Set the account id of cloudflare api.\n    // {\"account_id\", \"...\"},\n\n    // Set the database id of cloudflare api.\n    // {\"database_id\", \"...\"},\n\n    // Set the working directory of OpenDAL.\n    // {\"root\", \"...\"},\n\n    // Set the table of D1 Database.\n    // {\"table\", \"...\"},\n\n    [...]
         }
       ]
     },
@@ -845,26 +1087,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"dashmap\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"dashmap\", [\n    // root path of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"dashmap\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"dashmap\", [\n    // root path of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"dashmap\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root path of this backend\n// config.put(\"root\", \"...\");\nOperator operator = Operator.of(\"dashmap\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"dashmap\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"dashmap\",\n    # root path of this backend\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"dashmap\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"dashmap\",\n    # root path of this backend\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"dashmap\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"dashmap\", {\n  // root path of this backend\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"dashmap\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"dashmap\", {\n  // root path of this backend\n  // root: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"dashmap\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root path of this backend\n// conf.put(\"root\", \"...\");\n\nOperator op = Operator.of(\"dashmap\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/dashmap\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(dashmap.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/dashmap\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(dashmap.Scheme, opendal.OperatorOptions{\n\t// root path of this backend\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"dashmap\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root path of this backend\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"dashmap\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);"
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"dashmap\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root path of this backend\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"dashmap\", config);"
         }
       ]
     },
@@ -901,14 +1161,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"dbfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"dbfs\", [\n    // The root for dbfs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The endpoint for dbfs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The token for dbfs.\n    // (\"token\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"dbfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"dbfs\", [\n    // The root for dbfs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The endpoint for dbfs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The token for dbfs.\n    // (\"token\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"dbfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"dbfs\",\n    # The root for dbfs.\n    # root=\"...\",\n\n    # The endpoint for dbfs.\n    # endpoint=\"...\",\n\n    # The token for dbfs.\n    # token=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"dbfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"dbfs\",\n    # The root for dbfs.\n    # root=\"...\",\n\n    # The endpoint for dbfs.\n    # endpoint=\"...\",\n\n    # The token for dbfs.\n    # token=\"...\",\n)"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/dbfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(dbfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/dbfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(dbfs.Scheme, opendal.OperatorOptions{\n\t// The root for dbfs.\n\t// \"root\": \"...\",\n\n\t// The endpoint for dbfs.\n\t// \"endpoint\": \"...\",\n\n\t// The token for dbfs.\n\t// \"token\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"dbfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The root for dbfs.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// The endpoint for dbfs.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// The token for dbfs.\n// opendal_operator_options_set(options, \"token\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"dbfs\", options);\nopendal_operator *operator = r [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"dbfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The root for dbfs.\n    // {\"root\", \"...\"},\n\n    // The endpoint for dbfs.\n    // {\"endpoint\", \"...\"},\n\n    // The token for dbfs.\n    // {\"token\", \"...\"},\n};\nopendal::Operator operator(\"dbfs\", config);"
         }
       ]
     },
@@ -959,26 +1237,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"dropbox\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"dropbox\", [\n    // root path for dropbox.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // access token for dropbox.\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // refresh_token for dropbox.\n    // (\"refresh_token\".to_string(), \"...\".to_string()),\n\n    // client_id for dropbox.\n    // (\"client_id\".to_string(), \"...\".to_string()),\n\n    // client_secret for dropb [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"dropbox\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"dropbox\", [\n    // root path for dropbox.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // access token for dropbox.\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // refresh_token for dropbox.\n    // (\"refresh_token\".to_string(), \"...\".to_string()),\n\n    // client_id for dropbox.\n    // (\"client_id\".to_string(), \"...\".to_string()),\n\n    // client_secret for [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"dropbox\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root path for dropbox.\n// config.put(\"root\", \"...\");\n\n// access token for dropbox.\n// config.put(\"access_token\", \"...\");\n\n// refresh_token for dropbox.\n// config.put(\"refresh_token\", \"...\");\n\n// client_id for dropbox.\n// config.put(\"client_id\", \"...\");\n\n// client_secret for dropbox.\n// config.put(\"clien [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"dropbox\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"dropbox\",\n    # root path for dropbox.\n    # root=\"...\",\n\n    # access token for dropbox.\n    # access_token=\"...\",\n\n    # refresh_token for dropbox.\n    # refresh_token=\"...\",\n\n    # client_id for dropbox.\n    # client_id=\"...\",\n\n    # client_secret for dropbox.\n    # client_secret=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"dropbox\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"dropbox\",\n    # root path for dropbox.\n    # root=\"...\",\n\n    # access token for dropbox.\n    # access_token=\"...\",\n\n    # refresh_token for dropbox.\n    # refresh_token=\"...\",\n\n    # client_id for dropbox.\n    # client_id=\"...\",\n\n    # client_secret for dropbox.\n    # client_secret=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"dropbox\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"dropbox\", {\n  // root path for dropbox.\n  // root: \"...\",\n\n  // access token for dropbox.\n  // access_token: \"...\",\n\n  // refresh_token for dropbox.\n  // refresh_token: \"...\",\n\n  // client_id for dropbox.\n  // client_id: \"...\",\n\n  // client_secret for dropbox.\n  // client_secret: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"dropbox\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"dropbox\", {\n  // root path for dropbox.\n  // root: \"...\",\n\n  // access token for dropbox.\n  // access_token: \"...\",\n\n  // refresh_token for dropbox.\n  // refresh_token: \"...\",\n\n  // client_id for dropbox.\n  // client_id: \"...\",\n\n  // client_secret for dropbox.\n  // client_secret: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"dropbox\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root path for dropbox.\n// conf.put(\"root\", \"...\");\n\n// access token for dropbox.\n// conf.put(\"access_token\", \"...\");\n\n// refresh_token for dropbox.\n// conf.put(\"refresh_token\", \"...\");\n\n// client_id for dropbox.\n// conf.put(\"client_id\", \"...\");\n\n// client_secret for dropbox.\n// conf.put(\"client_secret\",  [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/dropbox\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(dropbox.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/dropbox\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(dropbox.Scheme, opendal.OperatorOptions{\n\t// root path for dropbox.\n\t// \"root\": \"...\",\n\n\t// access token for dropbox.\n\t// \"access_token\": \"...\",\n\n\t// refresh_token for dropbox.\n\t// \"refresh_token\": \"...\",\n\n\t// client_id for dropbox.\n\t// \"client_id\": \"...\",\n\n\t// client_secret f [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"dropbox\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root path for dropbox.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// access token for dropbox.\n// opendal_operator_options_set(options, \"access_token\", \"...\");\n\n// refresh_token for dropbox.\n// opendal_operator_options_set(options, \"refresh_token\", \"...\");\n\n// client_id for dropbox.\n// opendal_operator_options_set(options, \"client_id\" [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"dropbox\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root path for dropbox.\n    // {\"root\", \"...\"},\n\n    // access token for dropbox.\n    // {\"access_token\", \"...\"},\n\n    // refresh_token for dropbox.\n    // {\"refresh_token\", \"...\"},\n\n    // client_id for dropbox.\n    // {\"client_id\", \"...\"},\n\n    // client_secret for dropbox.\n    // {\"client_secret\", \"...\"},\n};\nopendal::Operator operator(\"dropbox\ [...]
         }
       ]
     },
@@ -1043,26 +1339,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"etcd\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"etcd\", [\n    // network address of the Etcd services.\n    // If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n    // e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n    //\n    // default is \"http://127.0.0.1:2379\"\n    //  [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"etcd\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"etcd\", [\n    // network address of the Etcd services.\n    // If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n    // e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n    //\n    // default is \"http://127.0.0.1:2379\"\n  [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"etcd\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// network address of the Etcd services.\n// If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n// e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n//\ [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"etcd\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"etcd\",\n    # network address of the Etcd services.\n    # If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n    # e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n    #\n    # default is \"http://127.0.0.1:2379\"\n    # endpoints=\"...\ [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"etcd\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"etcd\",\n    # network address of the Etcd services.\n    # If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n    # e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n    #\n    # default is \"http://127.0.0.1:2379\"\n    # endpoints= [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"etcd\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"etcd\", {\n  // network address of the Etcd services.\n  // If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n  // e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n  //\n  // default is \"http://127.0.0.1:2379\"\n  // e [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"etcd\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"etcd\", {\n  // network address of the Etcd services.\n  // If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n  // e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n  //\n  // default is \"http://127.0.0.1:2379\"\n [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"etcd\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// network address of the Etcd services.\n// If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n// e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n//\n/ [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/etcd\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(etcd.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/etcd\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(etcd.Scheme, opendal.OperatorOptions{\n\t// network address of the Etcd services.\n\t// If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n\t// e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0. [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"etcd\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// network address of the Etcd services.\n// If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n// e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n//\n// default is \"http://127.0.0.1:2379\"\ [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"etcd\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // network address of the Etcd services.\n    // If use https, must set TLS options: `ca_path`, `cert_path`, `key_path`.\n    // e.g. \"127.0.0.1:23790,127.0.0.1:23791,127.0.0.1:23792\" or \"http://127.0.0.1:23790,http://127.0.0.1:23791,http://127.0.0.1:23792\" or \"https://127.0.0.1:23790,https://127.0.0.1:23791,https://127.0.0.1:23792\"\n    //\n    // default is \"http://127.0.0.1: [...]
         }
       ]
     },
@@ -1092,20 +1406,38 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"foundationdb\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"foundationdb\", [\n    // root of the backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // config_path for the backend.\n    // (\"config_path\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"foundationdb\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"foundationdb\", [\n    // root of the backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // config_path for the backend.\n    // (\"config_path\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"foundationdb\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"foundationdb\",\n    # root of the backend.\n    # root=\"...\",\n\n    # config_path for the backend.\n    # config_path=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"foundationdb\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"foundationdb\",\n    # root of the backend.\n    # root=\"...\",\n\n    # config_path for the backend.\n    # config_path=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"foundationdb\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"foundationdb\", {\n  // root of the backend.\n  // root: \"...\",\n\n  // config_path for the backend.\n  // config_path: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"foundationdb\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"foundationdb\", {\n  // root of the backend.\n  // root: \"...\",\n\n  // config_path for the backend.\n  // config_path: \"...\",\n});"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/foundationdb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(foundationdb.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/foundationdb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(foundationdb.Scheme, opendal.OperatorOptions{\n\t// root of the backend.\n\t// \"root\": \"...\",\n\n\t// config_path for the backend.\n\t// \"config_path\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"foundationdb\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of the backend.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// config_path for the backend.\n// opendal_operator_options_set(options, \"config_path\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"foundationdb\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(opera [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"foundationdb\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of the backend.\n    // {\"root\", \"...\"},\n\n    // config_path for the backend.\n    // {\"config_path\", \"...\"},\n};\nopendal::Operator operator(\"foundationdb\", config);"
         }
       ]
     },
@@ -1177,14 +1509,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"foyer\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"foyer\", [\n    // Name for this cache instance.\n    // (\"name\".to_string(), \"...\".to_string()),\n\n    // Root path of this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Memory capacity in bytes for the cache.\n    // (\"memory\".to_string(), \"1000\".to_string()),\n\n    // Disk cache directory path.\n    //\n    // If set, enables hybrid cache with disk storage. Data will be persi [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"foyer\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"foyer\", [\n    // Name for this cache instance.\n    // (\"name\".to_string(), \"...\".to_string()),\n\n    // Root path of this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Memory capacity in bytes for the cache.\n    // (\"memory\".to_string(), \"1000\".to_string()),\n\n    // Disk cache directory path.\n    //\n    // If set, enables hybrid cache with disk storage. Data will be [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"foyer\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"foyer\",\n    # Name for this cache instance.\n    # name=\"...\",\n\n    # Root path of this backend.\n    # root=\"...\",\n\n    # Memory capacity in bytes for the cache.\n    # memory=\"1000\",\n\n    # Disk cache directory path.\n    #\n    # If set, enables hybrid cache with disk storage. Data will be persisted to\n    # this directory when memory cache is full.\n    # disk_path=\"...\",\n\n    # Disk cache total cap [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"foyer\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"foyer\",\n    # Name for this cache instance.\n    # name=\"...\",\n\n    # Root path of this backend.\n    # root=\"...\",\n\n    # Memory capacity in bytes for the cache.\n    # memory=\"1000\",\n\n    # Disk cache directory path.\n    #\n    # If set, enables hybrid cache with disk storage. Data will be persisted to\n    # this directory when memory cache is full.\n    # disk_path=\"...\",\n\n    # Disk cache tot [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/foyer\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(foyer.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/foyer\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(foyer.Scheme, opendal.OperatorOptions{\n\t// Name for this cache instance.\n\t// \"name\": \"...\",\n\n\t// Root path of this backend.\n\t// \"root\": \"...\",\n\n\t// Memory capacity in bytes for the cache.\n\t// \"memory\": \"1000\",\n\n\t// Disk cache directory path.\n\t//\n\t// If set, enables hybrid cache with  [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"foyer\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Name for this cache instance.\n// opendal_operator_options_set(options, \"name\", \"...\");\n\n// Root path of this backend.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Memory capacity in bytes for the cache.\n// opendal_operator_options_set(options, \"memory\", \"1000\");\n\n// Disk cache directory path.\n//\n// If set, enables hybrid cache with di [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"foyer\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Name for this cache instance.\n    // {\"name\", \"...\"},\n\n    // Root path of this backend.\n    // {\"root\", \"...\"},\n\n    // Memory capacity in bytes for the cache.\n    // {\"memory\", \"1000\"},\n\n    // Disk cache directory path.\n    //\n    // If set, enables hybrid cache with disk storage. Data will be persisted to\n    // this directory when memory cache is full.\ [...]
         }
       ]
     },
@@ -1214,26 +1564,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"fs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"fs\", [\n    // root dir for backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // tmp dir for atomic write\n    // (\"atomic_write_dir\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"fs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"fs\", [\n    // root dir for backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // tmp dir for atomic write\n    // (\"atomic_write_dir\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"fs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root dir for backend\n// config.put(\"root\", \"...\");\n\n// tmp dir for atomic write\n// config.put(\"atomic_write_dir\", \"...\");\nOperator operator = Operator.of(\"fs\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"fs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"fs\",\n    # root dir for backend\n    # root=\"...\",\n\n    # tmp dir for atomic write\n    # atomic_write_dir=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"fs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"fs\",\n    # root dir for backend\n    # root=\"...\",\n\n    # tmp dir for atomic write\n    # atomic_write_dir=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"fs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"fs\", {\n  // root dir for backend\n  // root: \"...\",\n\n  // tmp dir for atomic write\n  // atomic_write_dir: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"fs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"fs\", {\n  // root dir for backend\n  // root: \"...\",\n\n  // tmp dir for atomic write\n  // atomic_write_dir: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"fs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root dir for backend\n// conf.put(\"root\", \"...\");\n\n// tmp dir for atomic write\n// conf.put(\"atomic_write_dir\", \"...\");\n\nOperator op = Operator.of(\"fs\", conf);"
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"fs\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"fs\", {\n  # root dir for backend\n  # \"root\" => \"...\",\n\n  # tmp dir for atomic write\n  # \"atomic_write_dir\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/fs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(fs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/fs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(fs.Scheme, opendal.OperatorOptions{\n\t// root dir for backend\n\t// \"root\": \"...\",\n\n\t// tmp dir for atomic write\n\t// \"atomic_write_dir\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"fs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root dir for backend\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// tmp dir for atomic write\n// opendal_operator_options_set(options, \"atomic_write_dir\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"fs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nop [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"fs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root dir for backend\n    // {\"root\", \"...\"},\n\n    // tmp dir for atomic write\n    // {\"atomic_write_dir\", \"...\"},\n};\nopendal::Operator operator(\"fs\", config);"
         }
       ]
     },
@@ -1277,20 +1651,38 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ftp\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ftp\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // user of this backend\n    // (\"user\".to_string(), \"...\".to_string()),\n\n    // password of this backend\n    // (\"password\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ftp\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ftp\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // user of this backend\n    // (\"user\".to_string(), \"...\".to_string()),\n\n    // password of this backend\n    // (\"password\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"ftp\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"ftp\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # user of this backend\n    # user=\"...\",\n\n    # password of this backend\n    # password=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"ftp\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"ftp\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # user of this backend\n    # user=\"...\",\n\n    # password of this backend\n    # password=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ftp\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ftp\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // user of this backend\n  // user: \"...\",\n\n  // password of this backend\n  // password: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ftp\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ftp\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // user of this backend\n  // user: \"...\",\n\n  // password of this backend\n  // password: \"...\",\n});"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/ftp\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ftp.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/ftp\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ftp.Scheme, opendal.OperatorOptions{\n\t// endpoint of this backend\n\t// \"endpoint\": \"...\",\n\n\t// root of this backend\n\t// \"root\": \"...\",\n\n\t// user of this backend\n\t// \"user\": \"...\",\n\n\t// password of this backend\n\t// \"password\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"ftp\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// endpoint of this backend\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// root of this backend\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// user of this backend\n// opendal_operator_options_set(options, \"user\", \"...\");\n\n// password of this backend\n// opendal_operator_options_set(options, \"password\", \"...\");\nopendal_ [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"ftp\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // endpoint of this backend\n    // {\"endpoint\", \"...\"},\n\n    // root of this backend\n    // {\"root\", \"...\"},\n\n    // user of this backend\n    // {\"user\", \"...\"},\n\n    // password of this backend\n    // {\"password\", \"...\"},\n};\nopendal::Operator operator(\"ftp\", config);"
         }
       ]
     },
@@ -1414,26 +1806,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"gcs\", [\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"gcs\", [\n    // --- General ---\n    // root URI, all operations happens under `root`\n    // (\"root\".to_string(), \"/\".to_string()),\n\n    // bucket name\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n\n    // endpoint URI of GCS service,\n    // default is `https://storage.googleapis.com`\n    // (\"endpoint\".to_string(), \"https://storage.googleapis.com\".to_string()),\n\n    // Scope for gcs. [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"gcs\", [\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"gcs\", [\n    // --- General ---\n    // root URI, all operations happens under `root`\n    // (\"root\".to_string(), \"/\".to_string()),\n\n    // bucket name\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n\n    // endpoint URI of GCS service,\n    // default is `https://storage.googleapis.com`\n    // (\"endpoint\".to_string(), \"https://storage.googleapis.com\".to_string()),\n\n    // Scope fo [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"bucket\", \"my-bucket\");\nOperator operator = Operator.of(\"gcs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// --- General ---\n// root URI, all operations happens under `root`\n// config.put(\"root\", \"/\");\n\n// bucket name\nconfig.put(\"bucket\", \"my-bucket\");\n\n// endpoint URI of GCS service,\n// default is `https://storage.googleapis.com`\n// config.put(\"endpoint\", \"https://storage.googleapis.com\");\n\n// Scope for gcs.\n// con [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"gcs\",\n    bucket=\"my-bucket\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"gcs\",\n    # --- General ---\n    # root URI, all operations happens under `root`\n    # root=\"/\",\n\n    # bucket name\n    bucket=\"my-bucket\",\n\n    # endpoint URI of GCS service,\n    # default is `https://storage.googleapis.com`\n    # endpoint=\"https://storage.googleapis.com\",\n\n    # Scope for gcs.\n    # scope=\"...\",\n\n    # --- Credentials ---\n    # Service Account for gcs.\n    # service_account=\".. [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"gcs\",\n    bucket=\"my-bucket\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"gcs\",\n    # --- General ---\n    # root URI, all operations happens under `root`\n    # root=\"/\",\n\n    # bucket name\n    bucket=\"my-bucket\",\n\n    # endpoint URI of GCS service,\n    # default is `https://storage.googleapis.com`\n    # endpoint=\"https://storage.googleapis.com\",\n\n    # Scope for gcs.\n    # scope=\"...\",\n    # --- Credentials ---\n    # Service Account for gcs.\n    # service_account= [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"gcs\", {\n  bucket: \"my-bucket\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"gcs\", {\n  // --- General ---\n  // root URI, all operations happens under `root`\n  // root: \"/\",\n\n  // bucket name\n  bucket: \"my-bucket\",\n\n  // endpoint URI of GCS service,\n  // default is `https://storage.googleapis.com`\n  // endpoint: \"https://storage.googleapis.com\",\n\n  // Scope for gcs.\n  // scope: \"...\",\n\n  // --- Credentials ---\n  // Service Account for gcs.\n  // service_a [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"gcs\", {\n  bucket: \"my-bucket\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"gcs\", {\n  // --- General ---\n  // root URI, all operations happens under `root`\n  // root: \"/\",\n\n  // bucket name\n  bucket: \"my-bucket\",\n\n  // endpoint URI of GCS service,\n  // default is `https://storage.googleapis.com`\n  // endpoint: \"https://storage.googleapis.com\",\n\n  // Scope for gcs.\n  // scope: \"...\",\n  // --- Credentials ---\n  // Service Account for gcs.\n  // servi [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"bucket\", \"my-bucket\");\nOperator op = Operator.of(\"gcs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// --- General ---\n// root URI, all operations happens under `root`\n// conf.put(\"root\", \"/\");\n\n// bucket name\nconf.put(\"bucket\", \"my-bucket\");\n\n// endpoint URI of GCS service,\n// default is `https://storage.googleapis.com`\n// conf.put(\"endpoint\", \"https://storage.googleapis.com\");\n\n// Scope for gcs.\n// conf.put(\" [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"gcs\", {\n  \"bucket\" => \"my-bucket\",\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"gcs\", {\n  # --- General ---\n  # root URI, all operations happens under `root`\n  # \"root\" => \"/\",\n\n  # bucket name\n  \"bucket\" => \"my-bucket\",\n\n  # endpoint URI of GCS service,\n  # default is `https://storage.googleapis.com`\n  # \"endpoint\" => \"https://storage.googleapis.com\",\n\n  # Scope for gcs.\n  # \"scope\" => \"...\",\n  # --- Credentials ---\n  # Service Account for gcs.\n  # \"servic [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/gcs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(gcs.Scheme, opendal.OperatorOptions{\n\t\"bucket\": \"my-bucket\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/gcs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(gcs.Scheme, opendal.OperatorOptions{\n\t// --- General ---\n\t// root URI, all operations happens under `root`\n\t// \"root\": \"/\",\n\n\t// bucket name\n\t\"bucket\": \"my-bucket\",\n\n\t// endpoint URI of GCS service,\n\t// default is `https://storage.googleapis.com`\n\t// \"endpoint\": \"https://storage.googleapis [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"bucket\", \"my-bucket\");\nopendal_result_operator_new result = opendal_operator_new(\"gcs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// --- General ---\n// root URI, all operations happens under `root`\n// opendal_operator_options_set(options, \"root\", \"/\");\n\n// bucket name\nopendal_operator_options_set(options, \"bucket\", \"my-bucket\");\n\n// endpoint URI of GCS service,\n// default is `https://storage.googleapis.com`\n// opendal_operator_options_set(options, \"endpoint\", \"https://storage.googlea [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"bucket\", \"my-bucket\"},\n};\nopendal::Operator operator(\"gcs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // --- General ---\n    // root URI, all operations happens under `root`\n    // {\"root\", \"/\"},\n\n    // bucket name\n    {\"bucket\", \"my-bucket\"},\n\n    // endpoint URI of GCS service,\n    // default is `https://storage.googleapis.com`\n    // {\"endpoint\", \"https://storage.googleapis.com\"},\n\n    // Scope for gcs.\n    // {\"scope\", \"...\"},\n    // --- Credentials - [...]
         }
       ]
     },
@@ -1484,26 +1900,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"gdrive\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"gdrive\", [\n    // The root for gdrive\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Access token for gdrive.\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // Refresh token for gdrive.\n    // (\"refresh_token\".to_string(), \"...\".to_string()),\n\n    // Client id for gdrive.\n    // (\"client_id\".to_string(), \"...\".to_string()),\n\n    // Client secret for gdrive.\n    [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"gdrive\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"gdrive\", [\n    // The root for gdrive\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Access token for gdrive.\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // Refresh token for gdrive.\n    // (\"refresh_token\".to_string(), \"...\".to_string()),\n\n    // Client id for gdrive.\n    // (\"client_id\".to_string(), \"...\".to_string()),\n\n    // Client secret for gdrive [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"gdrive\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The root for gdrive\n// config.put(\"root\", \"...\");\n\n// Access token for gdrive.\n// config.put(\"access_token\", \"...\");\n\n// Refresh token for gdrive.\n// config.put(\"refresh_token\", \"...\");\n\n// Client id for gdrive.\n// config.put(\"client_id\", \"...\");\n\n// Client secret for gdrive.\n// config.put(\"client_secre [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"gdrive\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"gdrive\",\n    # The root for gdrive\n    # root=\"...\",\n\n    # Access token for gdrive.\n    # access_token=\"...\",\n\n    # Refresh token for gdrive.\n    # refresh_token=\"...\",\n\n    # Client id for gdrive.\n    # client_id=\"...\",\n\n    # Client secret for gdrive.\n    # client_secret=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"gdrive\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"gdrive\",\n    # The root for gdrive\n    # root=\"...\",\n\n    # Access token for gdrive.\n    # access_token=\"...\",\n\n    # Refresh token for gdrive.\n    # refresh_token=\"...\",\n\n    # Client id for gdrive.\n    # client_id=\"...\",\n\n    # Client secret for gdrive.\n    # client_secret=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"gdrive\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"gdrive\", {\n  // The root for gdrive\n  // root: \"...\",\n\n  // Access token for gdrive.\n  // access_token: \"...\",\n\n  // Refresh token for gdrive.\n  // refresh_token: \"...\",\n\n  // Client id for gdrive.\n  // client_id: \"...\",\n\n  // Client secret for gdrive.\n  // client_secret: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"gdrive\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"gdrive\", {\n  // The root for gdrive\n  // root: \"...\",\n\n  // Access token for gdrive.\n  // access_token: \"...\",\n\n  // Refresh token for gdrive.\n  // refresh_token: \"...\",\n\n  // Client id for gdrive.\n  // client_id: \"...\",\n\n  // Client secret for gdrive.\n  // client_secret: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"gdrive\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The root for gdrive\n// conf.put(\"root\", \"...\");\n\n// Access token for gdrive.\n// conf.put(\"access_token\", \"...\");\n\n// Refresh token for gdrive.\n// conf.put(\"refresh_token\", \"...\");\n\n// Client id for gdrive.\n// conf.put(\"client_id\", \"...\");\n\n// Client secret for gdrive.\n// conf.put(\"client_secret\", \"...\" [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/gdrive\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(gdrive.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/gdrive\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(gdrive.Scheme, opendal.OperatorOptions{\n\t// The root for gdrive\n\t// \"root\": \"...\",\n\n\t// Access token for gdrive.\n\t// \"access_token\": \"...\",\n\n\t// Refresh token for gdrive.\n\t// \"refresh_token\": \"...\",\n\n\t// Client id for gdrive.\n\t// \"client_id\": \"...\",\n\n\t// Client secret for gdriv [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"gdrive\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The root for gdrive\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Access token for gdrive.\n// opendal_operator_options_set(options, \"access_token\", \"...\");\n\n// Refresh token for gdrive.\n// opendal_operator_options_set(options, \"refresh_token\", \"...\");\n\n// Client id for gdrive.\n// opendal_operator_options_set(options, \"client_id\", \".. [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"gdrive\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The root for gdrive\n    // {\"root\", \"...\"},\n\n    // Access token for gdrive.\n    // {\"access_token\", \"...\"},\n\n    // Refresh token for gdrive.\n    // {\"refresh_token\", \"...\"},\n\n    // Client id for gdrive.\n    // {\"client_id\", \"...\"},\n\n    // Client secret for gdrive.\n    // {\"client_secret\", \"...\"},\n};\nopendal::Operator operator(\"gdrive\", config);"
         }
       ]
     },
@@ -1547,26 +1981,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ghac\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ghac\", [\n    // The root path for ghac.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The version that used by cache.\n    // (\"version\".to_string(), \"...\".to_string()),\n\n    // The endpoint for ghac service.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The runtime token for ghac service.\n    // (\"runtime_token\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ghac\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ghac\", [\n    // The root path for ghac.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The version that used by cache.\n    // (\"version\".to_string(), \"...\".to_string()),\n\n    // The endpoint for ghac service.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The runtime token for ghac service.\n    // (\"runtime_token\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"ghac\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The root path for ghac.\n// config.put(\"root\", \"...\");\n\n// The version that used by cache.\n// config.put(\"version\", \"...\");\n\n// The endpoint for ghac service.\n// config.put(\"endpoint\", \"...\");\n\n// The runtime token for ghac service.\n// config.put(\"runtime_token\", \"...\");\nOperator operator = Operator.of(\"gh [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"ghac\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"ghac\",\n    # The root path for ghac.\n    # root=\"...\",\n\n    # The version that used by cache.\n    # version=\"...\",\n\n    # The endpoint for ghac service.\n    # endpoint=\"...\",\n\n    # The runtime token for ghac service.\n    # runtime_token=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"ghac\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"ghac\",\n    # The root path for ghac.\n    # root=\"...\",\n\n    # The version that used by cache.\n    # version=\"...\",\n\n    # The endpoint for ghac service.\n    # endpoint=\"...\",\n\n    # The runtime token for ghac service.\n    # runtime_token=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ghac\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ghac\", {\n  // The root path for ghac.\n  // root: \"...\",\n\n  // The version that used by cache.\n  // version: \"...\",\n\n  // The endpoint for ghac service.\n  // endpoint: \"...\",\n\n  // The runtime token for ghac service.\n  // runtime_token: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ghac\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ghac\", {\n  // The root path for ghac.\n  // root: \"...\",\n\n  // The version that used by cache.\n  // version: \"...\",\n\n  // The endpoint for ghac service.\n  // endpoint: \"...\",\n\n  // The runtime token for ghac service.\n  // runtime_token: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"ghac\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The root path for ghac.\n// conf.put(\"root\", \"...\");\n\n// The version that used by cache.\n// conf.put(\"version\", \"...\");\n\n// The endpoint for ghac service.\n// conf.put(\"endpoint\", \"...\");\n\n// The runtime token for ghac service.\n// conf.put(\"runtime_token\", \"...\");\n\nOperator op = Operator.of(\"ghac\", conf);"
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"ghac\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"ghac\", {\n  # The root path for ghac.\n  # \"root\" => \"...\",\n\n  # The version that used by cache.\n  # \"version\" => \"...\",\n\n  # The endpoint for ghac service.\n  # \"endpoint\" => \"...\",\n\n  # The runtime token for ghac service.\n  # \"runtime_token\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/ghac\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ghac.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/ghac\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ghac.Scheme, opendal.OperatorOptions{\n\t// The root path for ghac.\n\t// \"root\": \"...\",\n\n\t// The version that used by cache.\n\t// \"version\": \"...\",\n\n\t// The endpoint for ghac service.\n\t// \"endpoint\": \"...\",\n\n\t// The runtime token for ghac service.\n\t// \"runtime_token\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"ghac\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The root path for ghac.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// The version that used by cache.\n// opendal_operator_options_set(options, \"version\", \"...\");\n\n// The endpoint for ghac service.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// The runtime token for ghac service.\n// opendal_operator_options_set(options, [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"ghac\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The root path for ghac.\n    // {\"root\", \"...\"},\n\n    // The version that used by cache.\n    // {\"version\", \"...\"},\n\n    // The endpoint for ghac service.\n    // {\"endpoint\", \"...\"},\n\n    // The runtime token for ghac service.\n    // {\"runtime_token\", \"...\"},\n};\nopendal::Operator operator(\"ghac\", config);"
         }
       ]
     },
@@ -1610,14 +2068,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"github\", [\n    (\"owner\".to_string(), \"...\".to_string()),\n    (\"repo\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"github\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // GitHub access_token.\n    //\n    // optional.\n    // If not provided, the backend will only support read operations for public repositories.\n    // And rate limit will be limited to 60 requests per hour.\n    // (\"token\".to_string(), \"...\".to_st [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"github\", [\n    (\"owner\".to_string(), \"...\".to_string()),\n    (\"repo\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"github\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // GitHub access_token.\n    //\n    // optional.\n    // If not provided, the backend will only support read operations for public repositories.\n    // And rate limit will be limited to 60 requests per hour.\n    // (\"token\".to_string(), \"...\" [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"github\",\n    owner=\"...\",\n    repo=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"github\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # GitHub access_token.\n    #\n    # optional.\n    # If not provided, the backend will only support read operations for public repositories.\n    # And rate limit will be limited to 60 requests per hour.\n    # token=\"...\",\n\n    # GitHub repo owner.\n    #\n    # required.\n    owner=\"...\",\n [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"github\",\n    owner=\"...\",\n    repo=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"github\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # GitHub access_token.\n    #\n    # optional.\n    # If not provided, the backend will only support read operations for public repositories.\n    # And rate limit will be limited to 60 requests per hour.\n    # token=\"...\",\n\n    # GitHub repo owner.\n    #\n    # required.\n    owner=\".. [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/github\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(github.Scheme, opendal.OperatorOptions{\n\t\"owner\": \"...\",\n\t\"repo\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/github\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(github.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// GitHub access_token.\n\t//\n\t// optional.\n\t// If not provided, the backend will only support read operations for public repositories.\n\t// And rate limit w [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"owner\", \"...\");\nopendal_operator_options_set(options, \"repo\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"github\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// GitHub access_token.\n//\n// optional.\n// If not provided, the backend will only support read operations for public repositories.\n// And rate limit will be limited to 60 requests per hour.\n// opendal_operator_options_set(options,  [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"owner\", \"...\"},\n    {\"repo\", \"...\"},\n};\nopendal::Operator operator(\"github\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // GitHub access_token.\n    //\n    // optional.\n    // If not provided, the backend will only support read operations for public repositories.\n    // And rate limit will be limited to 60 requests per hour.\n    // {\"token\", \"...\"},\n\n    // GitHub repo owne [...]
         }
       ]
     },
@@ -1682,26 +2158,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"goosefs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"goosefs\", [\n    // Root path of this backend.\n    //\n    // All operations will happen under this root.\n    // Default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Master address(es) in `host:port` format.\n    //\n    // For single master: `\"10.0.0.1:9200\"`\n    // For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n    //\n    // When multiple ad [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"goosefs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"goosefs\", [\n    // Root path of this backend.\n    //\n    // All operations will happen under this root.\n    // Default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Master address(es) in `host:port` format.\n    //\n    // For single master: `\"10.0.0.1:9200\"`\n    // For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n    //\n    // When multi [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"goosefs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root path of this backend.\n//\n// All operations will happen under this root.\n// Default to `/` if not set.\n// config.put(\"root\", \"...\");\n\n// Master address(es) in `host:port` format.\n//\n// For single master: `\"10.0.0.1:9200\"`\n// For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n//\n// When mul [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"goosefs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"goosefs\",\n    # Root path of this backend.\n    #\n    # All operations will happen under this root.\n    # Default to `/` if not set.\n    # root=\"...\",\n\n    # Master address(es) in `host:port` format.\n    #\n    # For single master: `\"10.0.0.1:9200\"`\n    # For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n    #\n    # When multiple addresses are provided, the client uses\n    # `Pollin [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"goosefs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"goosefs\",\n    # Root path of this backend.\n    #\n    # All operations will happen under this root.\n    # Default to `/` if not set.\n    # root=\"...\",\n\n    # Master address(es) in `host:port` format.\n    #\n    # For single master: `\"10.0.0.1:9200\"`\n    # For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n    #\n    # When multiple addresses are provided, the client uses\n    # ` [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"goosefs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"goosefs\", {\n  // Root path of this backend.\n  //\n  // All operations will happen under this root.\n  // Default to `/` if not set.\n  // root: \"...\",\n\n  // Master address(es) in `host:port` format.\n  //\n  // For single master: `\"10.0.0.1:9200\"`\n  // For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n  //\n  // When multiple addresses are provided, the client uses\n   [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"goosefs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"goosefs\", {\n  // Root path of this backend.\n  //\n  // All operations will happen under this root.\n  // Default to `/` if not set.\n  // root: \"...\",\n\n  // Master address(es) in `host:port` format.\n  //\n  // For single master: `\"10.0.0.1:9200\"`\n  // For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n  //\n  // When multiple addresses are provided, the client us [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"goosefs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root path of this backend.\n//\n// All operations will happen under this root.\n// Default to `/` if not set.\n// conf.put(\"root\", \"...\");\n\n// Master address(es) in `host:port` format.\n//\n// For single master: `\"10.0.0.1:9200\"`\n// For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n//\n// When multipl [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/goosefs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(goosefs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/goosefs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(goosefs.Scheme, opendal.OperatorOptions{\n\t// Root path of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// Default to `/` if not set.\n\t// \"root\": \"...\",\n\n\t// Master address(es) in `host:port` format.\n\t//\n\t// For single master: `\"10.0.0.1:9200\"`\n\t// For HA (comma-separa [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"goosefs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root path of this backend.\n//\n// All operations will happen under this root.\n// Default to `/` if not set.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Master address(es) in `host:port` format.\n//\n// For single master: `\"10.0.0.1:9200\"`\n// For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n//\n// When multiple addresse [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"goosefs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root path of this backend.\n    //\n    // All operations will happen under this root.\n    // Default to `/` if not set.\n    // {\"root\", \"...\"},\n\n    // Master address(es) in `host:port` format.\n    //\n    // For single master: `\"10.0.0.1:9200\"`\n    // For HA (comma-separated): `\"10.0.0.1:9200,10.0.0.2:9200,10.0.0.3:9200\"`\n    //\n    // When multiple addresses are  [...]
         }
       ]
     },
@@ -1752,26 +2246,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"gridfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"gridfs\", [\n    // The connection string of the MongoDB service.\n    // (\"connection_string\".to_string(), \"...\".to_string()),\n\n    // The database name of the MongoDB GridFs service to read/write.\n    // (\"database\".to_string(), \"...\".to_string()),\n\n    // The bucket name of the MongoDB GridFs service to read/write.\n    // (\"bucket\".to_string(), \"...\".to_string()),\n\n    // The chunk size of t [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"gridfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"gridfs\", [\n    // The connection string of the MongoDB service.\n    // (\"connection_string\".to_string(), \"...\".to_string()),\n\n    // The database name of the MongoDB GridFs service to read/write.\n    // (\"database\".to_string(), \"...\".to_string()),\n\n    // The bucket name of the MongoDB GridFs service to read/write.\n    // (\"bucket\".to_string(), \"...\".to_string()),\n\n    // The chunk siz [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"gridfs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The connection string of the MongoDB service.\n// config.put(\"connection_string\", \"...\");\n\n// The database name of the MongoDB GridFs service to read/write.\n// config.put(\"database\", \"...\");\n\n// The bucket name of the MongoDB GridFs service to read/write.\n// config.put(\"bucket\", \"...\");\n\n// The chunk size of the  [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"gridfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"gridfs\",\n    # The connection string of the MongoDB service.\n    # connection_string=\"...\",\n\n    # The database name of the MongoDB GridFs service to read/write.\n    # database=\"...\",\n\n    # The bucket name of the MongoDB GridFs service to read/write.\n    # bucket=\"...\",\n\n    # The chunk size of the MongoDB GridFs service used to break the user file into chunks.\n    # chunk_size=\"1000\",\n\n    # The wo [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"gridfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"gridfs\",\n    # The connection string of the MongoDB service.\n    # connection_string=\"...\",\n\n    # The database name of the MongoDB GridFs service to read/write.\n    # database=\"...\",\n\n    # The bucket name of the MongoDB GridFs service to read/write.\n    # bucket=\"...\",\n\n    # The chunk size of the MongoDB GridFs service used to break the user file into chunks.\n    # chunk_size=\"1000\",\n\n    #  [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"gridfs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"gridfs\", {\n  // The connection string of the MongoDB service.\n  // connection_string: \"...\",\n\n  // The database name of the MongoDB GridFs service to read/write.\n  // database: \"...\",\n\n  // The bucket name of the MongoDB GridFs service to read/write.\n  // bucket: \"...\",\n\n  // The chunk size of the MongoDB GridFs service used to break the user file into chunks.\n  // chunk_size: \"1000\" [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"gridfs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"gridfs\", {\n  // The connection string of the MongoDB service.\n  // connection_string: \"...\",\n\n  // The database name of the MongoDB GridFs service to read/write.\n  // database: \"...\",\n\n  // The bucket name of the MongoDB GridFs service to read/write.\n  // bucket: \"...\",\n\n  // The chunk size of the MongoDB GridFs service used to break the user file into chunks.\n  // chunk_size: \" [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"gridfs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The connection string of the MongoDB service.\n// conf.put(\"connection_string\", \"...\");\n\n// The database name of the MongoDB GridFs service to read/write.\n// conf.put(\"database\", \"...\");\n\n// The bucket name of the MongoDB GridFs service to read/write.\n// conf.put(\"bucket\", \"...\");\n\n// The chunk size of the MongoDB  [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/gridfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(gridfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/gridfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(gridfs.Scheme, opendal.OperatorOptions{\n\t// The connection string of the MongoDB service.\n\t// \"connection_string\": \"...\",\n\n\t// The database name of the MongoDB GridFs service to read/write.\n\t// \"database\": \"...\",\n\n\t// The bucket name of the MongoDB GridFs service to read/write.\n\t// \"bucket\": [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"gridfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The connection string of the MongoDB service.\n// opendal_operator_options_set(options, \"connection_string\", \"...\");\n\n// The database name of the MongoDB GridFs service to read/write.\n// opendal_operator_options_set(options, \"database\", \"...\");\n\n// The bucket name of the MongoDB GridFs service to read/write.\n// opendal_operator_options_set(options, \"bucket\" [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"gridfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The connection string of the MongoDB service.\n    // {\"connection_string\", \"...\"},\n\n    // The database name of the MongoDB GridFs service to read/write.\n    // {\"database\", \"...\"},\n\n    // The bucket name of the MongoDB GridFs service to read/write.\n    // {\"bucket\", \"...\"},\n\n    // The chunk size of the MongoDB GridFs service used to break the user file into  [...]
         }
       ]
     },
@@ -1833,20 +2345,38 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"hdfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"hdfs\", [\n    // work dir of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // name node of this backend\n    // (\"name_node\".to_string(), \"...\".to_string()),\n\n    // kerberos_ticket_cache_path of this backend\n    // (\"kerberos_ticket_cache_path\".to_string(), \"...\".to_string()),\n\n    // user of this backend\n    // (\"user\".to_string(), \"...\".to_string()),\n\n    // atomi [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"hdfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"hdfs\", [\n    // work dir of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // name node of this backend\n    // (\"name_node\".to_string(), \"...\".to_string()),\n\n    // kerberos_ticket_cache_path of this backend\n    // (\"kerberos_ticket_cache_path\".to_string(), \"...\".to_string()),\n\n    // user of this backend\n    // (\"user\".to_string(), \"...\".to_string()),\n\n    // [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"hdfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"hdfs\",\n    # work dir of this backend\n    # root=\"...\",\n\n    # name node of this backend\n    # name_node=\"...\",\n\n    # kerberos_ticket_cache_path of this backend\n    # kerberos_ticket_cache_path=\"...\",\n\n    # user of this backend\n    # user=\"...\",\n\n    # atomic_write_dir of this backend\n    # atomic_write_dir=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"hdfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"hdfs\",\n    # work dir of this backend\n    # root=\"...\",\n\n    # name node of this backend\n    # name_node=\"...\",\n\n    # kerberos_ticket_cache_path of this backend\n    # kerberos_ticket_cache_path=\"...\",\n\n    # user of this backend\n    # user=\"...\",\n\n    # atomic_write_dir of this backend\n    # atomic_write_dir=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"hdfs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"hdfs\", {\n  // work dir of this backend\n  // root: \"...\",\n\n  // name node of this backend\n  // name_node: \"...\",\n\n  // kerberos_ticket_cache_path of this backend\n  // kerberos_ticket_cache_path: \"...\",\n\n  // user of this backend\n  // user: \"...\",\n\n  // atomic_write_dir of this backend\n  // atomic_write_dir: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"hdfs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"hdfs\", {\n  // work dir of this backend\n  // root: \"...\",\n\n  // name node of this backend\n  // name_node: \"...\",\n\n  // kerberos_ticket_cache_path of this backend\n  // kerberos_ticket_cache_path: \"...\",\n\n  // user of this backend\n  // user: \"...\",\n\n  // atomic_write_dir of this backend\n  // atomic_write_dir: \"...\",\n});"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/hdfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(hdfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/hdfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(hdfs.Scheme, opendal.OperatorOptions{\n\t// work dir of this backend\n\t// \"root\": \"...\",\n\n\t// name node of this backend\n\t// \"name_node\": \"...\",\n\n\t// kerberos_ticket_cache_path of this backend\n\t// \"kerberos_ticket_cache_path\": \"...\",\n\n\t// user of this backend\n\t// \"user\": \"...\",\n\n\t//  [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"hdfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// work dir of this backend\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// name node of this backend\n// opendal_operator_options_set(options, \"name_node\", \"...\");\n\n// kerberos_ticket_cache_path of this backend\n// opendal_operator_options_set(options, \"kerberos_ticket_cache_path\", \"...\");\n\n// user of this backend\n// opendal_operator_options_ [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"hdfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // work dir of this backend\n    // {\"root\", \"...\"},\n\n    // name node of this backend\n    // {\"name_node\", \"...\"},\n\n    // kerberos_ticket_cache_path of this backend\n    // {\"kerberos_ticket_cache_path\", \"...\"},\n\n    // user of this backend\n    // {\"user\", \"...\"},\n\n    // atomic_write_dir of this backend\n    // {\"atomic_write_dir\", \"...\"},\n};\nopendal [...]
         }
       ]
     },
@@ -1894,20 +2424,38 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"hdfs-native\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"hdfs-native\", [\n    // work dir of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // name_node of this backend\n    // (\"name_node\".to_string(), \"...\".to_string()),\n\n    // other options for hdfs client\n    // (\"options\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"hdfs-native\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"hdfs-native\", [\n    // work dir of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // name_node of this backend\n    // (\"name_node\".to_string(), \"...\".to_string()),\n\n    // other options for hdfs client\n    // (\"options\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"hdfs-native\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"hdfs-native\",\n    # work dir of this backend\n    # root=\"...\",\n\n    # name_node of this backend\n    # name_node=\"...\",\n\n    # other options for hdfs client\n    # options=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"hdfs-native\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"hdfs-native\",\n    # work dir of this backend\n    # root=\"...\",\n\n    # name_node of this backend\n    # name_node=\"...\",\n\n    # other options for hdfs client\n    # options=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"hdfs-native\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"hdfs-native\", {\n  // work dir of this backend\n  // root: \"...\",\n\n  // name_node of this backend\n  // name_node: \"...\",\n\n  // other options for hdfs client\n  // options: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"hdfs-native\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"hdfs-native\", {\n  // work dir of this backend\n  // root: \"...\",\n\n  // name_node of this backend\n  // name_node: \"...\",\n\n  // other options for hdfs client\n  // options: \"...\",\n});"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/hdfs-native\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(hdfs-native.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/hdfs-native\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(hdfs-native.Scheme, opendal.OperatorOptions{\n\t// work dir of this backend\n\t// \"root\": \"...\",\n\n\t// name_node of this backend\n\t// \"name_node\": \"...\",\n\n\t// other options for hdfs client\n\t// \"options\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"hdfs-native\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// work dir of this backend\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// name_node of this backend\n// opendal_operator_options_set(options, \"name_node\", \"...\");\n\n// other options for hdfs client\n// opendal_operator_options_set(options, \"options\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"hdfs-native\", options);\no [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"hdfs-native\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // work dir of this backend\n    // {\"root\", \"...\"},\n\n    // name_node of this backend\n    // {\"name_node\", \"...\"},\n\n    // other options for hdfs client\n    // {\"options\", \"...\"},\n};\nopendal::Operator operator(\"hdfs-native\", config);"
         }
       ]
     },
@@ -1972,26 +2520,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"hf\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"hf\", [\n    // Repo type of this backend. Required.\n    // (\"repo_type\".to_string(), \"...\".to_string()),\n\n    // Repo id of this backend.\n    //\n    // This is required.\n    // (\"repo_id\".to_string(), \"...\".to_string()),\n\n    // Revision of this backend.\n    //\n    // Default is main.\n    // (\"revision\".to_string(), \"...\".to_string()),\n\n    // Root of this backend. Can be \"/path/to/dir\" [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"hf\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"hf\", [\n    // Repo type of this backend. Required.\n    // (\"repo_type\".to_string(), \"...\".to_string()),\n\n    // Repo id of this backend.\n    //\n    // This is required.\n    // (\"repo_id\".to_string(), \"...\".to_string()),\n\n    // Revision of this backend.\n    //\n    // Default is main.\n    // (\"revision\".to_string(), \"...\".to_string()),\n\n    // Root of this backend. Can be \"/path/to [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"hf\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Repo type of this backend. Required.\n// config.put(\"repo_type\", \"...\");\n\n// Repo id of this backend.\n//\n// This is required.\n// config.put(\"repo_id\", \"...\");\n\n// Revision of this backend.\n//\n// Default is main.\n// config.put(\"revision\", \"...\");\n\n// Root of this backend. Can be \"/path/to/dir\".\n//\n// Defau [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"hf\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"hf\",\n    # Repo type of this backend. Required.\n    # repo_type=\"...\",\n\n    # Repo id of this backend.\n    #\n    # This is required.\n    # repo_id=\"...\",\n\n    # Revision of this backend.\n    #\n    # Default is main.\n    # revision=\"...\",\n\n    # Root of this backend. Can be \"/path/to/dir\".\n    #\n    # Default is \"/\".\n    # root=\"...\",\n\n    # Token of this backend.\n    #\n    # This is optio [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"hf\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"hf\",\n    # Repo type of this backend. Required.\n    # repo_type=\"...\",\n\n    # Repo id of this backend.\n    #\n    # This is required.\n    # repo_id=\"...\",\n\n    # Revision of this backend.\n    #\n    # Default is main.\n    # revision=\"...\",\n\n    # Root of this backend. Can be \"/path/to/dir\".\n    #\n    # Default is \"/\".\n    # root=\"...\",\n\n    # Token of this backend.\n    #\n    # This is [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"hf\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"hf\", {\n  // Repo type of this backend. Required.\n  // repo_type: \"...\",\n\n  // Repo id of this backend.\n  //\n  // This is required.\n  // repo_id: \"...\",\n\n  // Revision of this backend.\n  //\n  // Default is main.\n  // revision: \"...\",\n\n  // Root of this backend. Can be \"/path/to/dir\".\n  //\n  // Default is \"/\".\n  // root: \"...\",\n\n  // Token of this backend.\n  //\n  // This  [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"hf\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"hf\", {\n  // Repo type of this backend. Required.\n  // repo_type: \"...\",\n\n  // Repo id of this backend.\n  //\n  // This is required.\n  // repo_id: \"...\",\n\n  // Revision of this backend.\n  //\n  // Default is main.\n  // revision: \"...\",\n\n  // Root of this backend. Can be \"/path/to/dir\".\n  //\n  // Default is \"/\".\n  // root: \"...\",\n\n  // Token of this backend.\n  //\n  // [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"hf\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Repo type of this backend. Required.\n// conf.put(\"repo_type\", \"...\");\n\n// Repo id of this backend.\n//\n// This is required.\n// conf.put(\"repo_id\", \"...\");\n\n// Revision of this backend.\n//\n// Default is main.\n// conf.put(\"revision\", \"...\");\n\n// Root of this backend. Can be \"/path/to/dir\".\n//\n// Default is \" [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/hf\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(hf.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/hf\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(hf.Scheme, opendal.OperatorOptions{\n\t// Repo type of this backend. Required.\n\t// \"repo_type\": \"...\",\n\n\t// Repo id of this backend.\n\t//\n\t// This is required.\n\t// \"repo_id\": \"...\",\n\n\t// Revision of this backend.\n\t//\n\t// Default is main.\n\t// \"revision\": \"...\",\n\n\t// Root of this backend [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"hf\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Repo type of this backend. Required.\n// opendal_operator_options_set(options, \"repo_type\", \"...\");\n\n// Repo id of this backend.\n//\n// This is required.\n// opendal_operator_options_set(options, \"repo_id\", \"...\");\n\n// Revision of this backend.\n//\n// Default is main.\n// opendal_operator_options_set(options, \"revision\", \"...\");\n\n// Root of this backend [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"hf\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Repo type of this backend. Required.\n    // {\"repo_type\", \"...\"},\n\n    // Repo id of this backend.\n    //\n    // This is required.\n    // {\"repo_id\", \"...\"},\n\n    // Revision of this backend.\n    //\n    // Default is main.\n    // {\"revision\", \"...\"},\n\n    // Root of this backend. Can be \"/path/to/dir\".\n    //\n    // Default is \"/\".\n    // {\"root\",  [...]
         }
       ]
     },
@@ -2042,26 +2608,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"http\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"http\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // username of this backend\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // password of this backend\n    // (\"password\".to_string(), \"...\".to_string()),\n\n    // token of this backend\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"root\ [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"http\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"http\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // username of this backend\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // password of this backend\n    // (\"password\".to_string(), \"...\".to_string()),\n\n    // token of this backend\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\ [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"http\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// endpoint of this backend\n// config.put(\"endpoint\", \"...\");\n\n// username of this backend\n// config.put(\"username\", \"...\");\n\n// password of this backend\n// config.put(\"password\", \"...\");\n\n// token of this backend\n// config.put(\"token\", \"...\");\n\n// root of this backend\n// config.put(\"root\", \"...\");\nOpe [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"http\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"http\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # username of this backend\n    # username=\"...\",\n\n    # password of this backend\n    # password=\"...\",\n\n    # token of this backend\n    # token=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"http\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"http\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # username of this backend\n    # username=\"...\",\n\n    # password of this backend\n    # password=\"...\",\n\n    # token of this backend\n    # token=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"http\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"http\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // username of this backend\n  // username: \"...\",\n\n  // password of this backend\n  // password: \"...\",\n\n  // token of this backend\n  // token: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"http\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"http\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // username of this backend\n  // username: \"...\",\n\n  // password of this backend\n  // password: \"...\",\n\n  // token of this backend\n  // token: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"http\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// endpoint of this backend\n// conf.put(\"endpoint\", \"...\");\n\n// username of this backend\n// conf.put(\"username\", \"...\");\n\n// password of this backend\n// conf.put(\"password\", \"...\");\n\n// token of this backend\n// conf.put(\"token\", \"...\");\n\n// root of this backend\n// conf.put(\"root\", \"...\");\n\nOperator op = [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"http\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"http\", {\n  # endpoint of this backend\n  # \"endpoint\" => \"...\",\n\n  # username of this backend\n  # \"username\" => \"...\",\n\n  # password of this backend\n  # \"password\" => \"...\",\n\n  # token of this backend\n  # \"token\" => \"...\",\n\n  # root of this backend\n  # \"root\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/http\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(http.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/http\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(http.Scheme, opendal.OperatorOptions{\n\t// endpoint of this backend\n\t// \"endpoint\": \"...\",\n\n\t// username of this backend\n\t// \"username\": \"...\",\n\n\t// password of this backend\n\t// \"password\": \"...\",\n\n\t// token of this backend\n\t// \"token\": \"...\",\n\n\t// root of this backend\n\t// \"roo [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"http\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// endpoint of this backend\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// username of this backend\n// opendal_operator_options_set(options, \"username\", \"...\");\n\n// password of this backend\n// opendal_operator_options_set(options, \"password\", \"...\");\n\n// token of this backend\n// opendal_operator_options_set(options, \"token\", \"...\"); [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"http\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // endpoint of this backend\n    // {\"endpoint\", \"...\"},\n\n    // username of this backend\n    // {\"username\", \"...\"},\n\n    // password of this backend\n    // {\"password\", \"...\"},\n\n    // token of this backend\n    // {\"token\", \"...\"},\n\n    // root of this backend\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"http\", config);"
         }
       ]
     },
@@ -2091,26 +2681,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ipfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ipfs\", [\n    // IPFS gateway endpoint.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // IPFS root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ipfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ipfs\", [\n    // IPFS gateway endpoint.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // IPFS root.\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"ipfs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// IPFS gateway endpoint.\n// config.put(\"endpoint\", \"...\");\n\n// IPFS root.\n// config.put(\"root\", \"...\");\nOperator operator = Operator.of(\"ipfs\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"ipfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"ipfs\",\n    # IPFS gateway endpoint.\n    # endpoint=\"...\",\n\n    # IPFS root.\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"ipfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"ipfs\",\n    # IPFS gateway endpoint.\n    # endpoint=\"...\",\n\n    # IPFS root.\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ipfs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ipfs\", {\n  // IPFS gateway endpoint.\n  // endpoint: \"...\",\n\n  // IPFS root.\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ipfs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ipfs\", {\n  // IPFS gateway endpoint.\n  // endpoint: \"...\",\n\n  // IPFS root.\n  // root: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"ipfs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// IPFS gateway endpoint.\n// conf.put(\"endpoint\", \"...\");\n\n// IPFS root.\n// conf.put(\"root\", \"...\");\n\nOperator op = Operator.of(\"ipfs\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/ipfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ipfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/ipfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ipfs.Scheme, opendal.OperatorOptions{\n\t// IPFS gateway endpoint.\n\t// \"endpoint\": \"...\",\n\n\t// IPFS root.\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"ipfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// IPFS gateway endpoint.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// IPFS root.\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"ipfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_opt [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"ipfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // IPFS gateway endpoint.\n    // {\"endpoint\", \"...\"},\n\n    // IPFS root.\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"ipfs\", config);"
         }
       ]
     },
@@ -2140,26 +2748,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ipmfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"ipmfs\", [\n    // Root for ipfs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for ipfs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ipmfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"ipmfs\", [\n    // Root for ipfs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for ipfs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"ipmfs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root for ipfs.\n// config.put(\"root\", \"...\");\n\n// Endpoint for ipfs.\n// config.put(\"endpoint\", \"...\");\nOperator operator = Operator.of(\"ipmfs\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"ipmfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"ipmfs\",\n    # Root for ipfs.\n    # root=\"...\",\n\n    # Endpoint for ipfs.\n    # endpoint=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"ipmfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"ipmfs\",\n    # Root for ipfs.\n    # root=\"...\",\n\n    # Endpoint for ipfs.\n    # endpoint=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ipmfs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"ipmfs\", {\n  // Root for ipfs.\n  // root: \"...\",\n\n  // Endpoint for ipfs.\n  // endpoint: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ipmfs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"ipmfs\", {\n  // Root for ipfs.\n  // root: \"...\",\n\n  // Endpoint for ipfs.\n  // endpoint: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"ipmfs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root for ipfs.\n// conf.put(\"root\", \"...\");\n\n// Endpoint for ipfs.\n// conf.put(\"endpoint\", \"...\");\n\nOperator op = Operator.of(\"ipmfs\", conf);"
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"ipmfs\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"ipmfs\", {\n  # Root for ipfs.\n  # \"root\" => \"...\",\n\n  # Endpoint for ipfs.\n  # \"endpoint\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/ipmfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ipmfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/ipmfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(ipmfs.Scheme, opendal.OperatorOptions{\n\t// Root for ipfs.\n\t// \"root\": \"...\",\n\n\t// Endpoint for ipfs.\n\t// \"endpoint\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"ipmfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root for ipfs.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Endpoint for ipfs.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"ipmfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_op [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"ipmfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root for ipfs.\n    // {\"root\", \"...\"},\n\n    // Endpoint for ipfs.\n    // {\"endpoint\", \"...\"},\n};\nopendal::Operator operator(\"ipmfs\", config);"
         }
       ]
     },
@@ -2203,26 +2835,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"koofr\", [\n    (\"endpoint\".to_string(), \"...\".to_string()),\n    (\"email\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"koofr\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Koofr endpoint.\n    (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Koofr email.\n    (\"email\".to_string(), \"...\".to_string()),\n\n    // password of this backend. (Must be the application password)\n    // (\"password\".to_string(), \". [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"koofr\", [\n    (\"endpoint\".to_string(), \"...\".to_string()),\n    (\"email\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"koofr\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Koofr endpoint.\n    (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Koofr email.\n    (\"email\".to_string(), \"...\".to_string()),\n\n    // password of this backend. (Must be the application password)\n    // (\"password\".to_string( [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"endpoint\", \"...\");\nconfig.put(\"email\", \"...\");\nOperator operator = Operator.of(\"koofr\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// config.put(\"root\", \"...\");\n\n// Koofr endpoint.\nconfig.put(\"endpoint\", \"...\");\n\n// Koofr email.\nconfig.put(\"email\", \"...\");\n\n// password of this backend. (Must be the application password)\n// config.put(\"password\", \"...\");\nOperator [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"koofr\",\n    endpoint=\"...\",\n    email=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"koofr\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # Koofr endpoint.\n    endpoint=\"...\",\n\n    # Koofr email.\n    email=\"...\",\n\n    # password of this backend. (Must be the application password)\n    # password=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"koofr\",\n    endpoint=\"...\",\n    email=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"koofr\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # Koofr endpoint.\n    endpoint=\"...\",\n\n    # Koofr email.\n    email=\"...\",\n\n    # password of this backend. (Must be the application password)\n    # password=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"koofr\", {\n  endpoint: \"...\",\n  email: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"koofr\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // Koofr endpoint.\n  endpoint: \"...\",\n\n  // Koofr email.\n  email: \"...\",\n\n  // password of this backend. (Must be the application password)\n  // password: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"koofr\", {\n  endpoint: \"...\",\n  email: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"koofr\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // Koofr endpoint.\n  endpoint: \"...\",\n\n  // Koofr email.\n  email: \"...\",\n\n  // password of this backend. (Must be the application password)\n  // password: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"endpoint\", \"...\");\nconf.put(\"email\", \"...\");\nOperator op = Operator.of(\"koofr\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// conf.put(\"root\", \"...\");\n\n// Koofr endpoint.\nconf.put(\"endpoint\", \"...\");\n\n// Koofr email.\nconf.put(\"email\", \"...\");\n\n// password of this backend. (Must be the application password)\n// conf.put(\"password\", \"...\");\n\nOperator op = Op [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/koofr\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(koofr.Scheme, opendal.OperatorOptions{\n\t\"endpoint\": \"...\",\n\t\"email\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/koofr\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(koofr.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// Koofr endpoint.\n\t\"endpoint\": \"...\",\n\n\t// Koofr email.\n\t\"email\": \"...\",\n\n\t// password of this backend. (Must be the application password)\n\t//  [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"endpoint\", \"...\");\nopendal_operator_options_set(options, \"email\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"koofr\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Koofr endpoint.\nopendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// Koofr email.\nopendal_operator_options_set(options, \"email\", \"...\");\n\n// password of this backend. (Must be the application password)\n// open [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"endpoint\", \"...\"},\n    {\"email\", \"...\"},\n};\nopendal::Operator operator(\"koofr\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // Koofr endpoint.\n    {\"endpoint\", \"...\"},\n\n    // Koofr email.\n    {\"email\", \"...\"},\n\n    // password of this backend. (Must be the application password)\n    // {\"password\", \"...\"},\n};\nopendal::Operator operator(\"koofr\", config);"
         }
       ]
     },
@@ -2280,14 +2930,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"lakefs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"lakefs\", [\n    // Base url.\n    //\n    // This is required.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Username for Lakefs basic authentication.\n    //\n    // This is required.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // Password for Lakefs basic authentication.\n    //\n    // This is required.\n    // (\"password\".to_string(), \"...\".to_string()),\n\n    //  [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"lakefs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"lakefs\", [\n    // Base url.\n    //\n    // This is required.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Username for Lakefs basic authentication.\n    //\n    // This is required.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // Password for Lakefs basic authentication.\n    //\n    // This is required.\n    // (\"password\".to_string(), \"...\".to_string()),\n\n  [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"lakefs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"lakefs\",\n    # Base url.\n    #\n    # This is required.\n    # endpoint=\"...\",\n\n    # Username for Lakefs basic authentication.\n    #\n    # This is required.\n    # username=\"...\",\n\n    # Password for Lakefs basic authentication.\n    #\n    # This is required.\n    # password=\"...\",\n\n    # Root of this backend. Can be \"/path/to/dir\".\n    #\n    # Default is \"/\".\n    # root=\"...\",\n\n    # The rep [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"lakefs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"lakefs\",\n    # Base url.\n    #\n    # This is required.\n    # endpoint=\"...\",\n\n    # Username for Lakefs basic authentication.\n    #\n    # This is required.\n    # username=\"...\",\n\n    # Password for Lakefs basic authentication.\n    #\n    # This is required.\n    # password=\"...\",\n\n    # Root of this backend. Can be \"/path/to/dir\".\n    #\n    # Default is \"/\".\n    # root=\"...\",\n\n    # T [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/lakefs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(lakefs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/lakefs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(lakefs.Scheme, opendal.OperatorOptions{\n\t// Base url.\n\t//\n\t// This is required.\n\t// \"endpoint\": \"...\",\n\n\t// Username for Lakefs basic authentication.\n\t//\n\t// This is required.\n\t// \"username\": \"...\",\n\n\t// Password for Lakefs basic authentication.\n\t//\n\t// This is required.\n\t// \"pass [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"lakefs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Base url.\n//\n// This is required.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// Username for Lakefs basic authentication.\n//\n// This is required.\n// opendal_operator_options_set(options, \"username\", \"...\");\n\n// Password for Lakefs basic authentication.\n//\n// This is required.\n// opendal_operator_options_set(options, \"password\", \". [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"lakefs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Base url.\n    //\n    // This is required.\n    // {\"endpoint\", \"...\"},\n\n    // Username for Lakefs basic authentication.\n    //\n    // This is required.\n    // {\"username\", \"...\"},\n\n    // Password for Lakefs basic authentication.\n    //\n    // This is required.\n    // {\"password\", \"...\"},\n\n    // Root of this backend. Can be \"/path/to/dir\".\n    //\n    [...]
         }
       ]
     },
@@ -2345,26 +3013,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"memcached\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"memcached\", [\n    // network address of the memcached service.\n    //\n    // For example: \"tcp://localhost:11211\"\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // the working directory of the service. Can be \"/path/to/dir\"\n    //\n    // default is \"/\"\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Memcached username, optional.\n    // (\"username\".to_string(), \"...\" [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"memcached\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"memcached\", [\n    // network address of the memcached service.\n    //\n    // For example: \"tcp://localhost:11211\"\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // the working directory of the service. Can be \"/path/to/dir\"\n    //\n    // default is \"/\"\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Memcached username, optional.\n    // (\"username\".to_string(), \ [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"memcached\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// network address of the memcached service.\n//\n// For example: \"tcp://localhost:11211\"\n// config.put(\"endpoint\", \"...\");\n\n// the working directory of the service. Can be \"/path/to/dir\"\n//\n// default is \"/\"\n// config.put(\"root\", \"...\");\n\n// Memcached username, optional.\n// config.put(\"username\", \"...\");\n\n [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"memcached\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"memcached\",\n    # network address of the memcached service.\n    #\n    # For example: \"tcp://localhost:11211\"\n    # endpoint=\"...\",\n\n    # the working directory of the service. Can be \"/path/to/dir\"\n    #\n    # default is \"/\"\n    # root=\"...\",\n\n    # Memcached username, optional.\n    # username=\"...\",\n\n    # Memcached password, optional.\n    # password=\"...\",\n\n    # The default ttl for put o [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"memcached\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"memcached\",\n    # network address of the memcached service.\n    #\n    # For example: \"tcp://localhost:11211\"\n    # endpoint=\"...\",\n\n    # the working directory of the service. Can be \"/path/to/dir\"\n    #\n    # default is \"/\"\n    # root=\"...\",\n\n    # Memcached username, optional.\n    # username=\"...\",\n\n    # Memcached password, optional.\n    # password=\"...\",\n\n    # The default ttl for [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"memcached\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"memcached\", {\n  // network address of the memcached service.\n  //\n  // For example: \"tcp://localhost:11211\"\n  // endpoint: \"...\",\n\n  // the working directory of the service. Can be \"/path/to/dir\"\n  //\n  // default is \"/\"\n  // root: \"...\",\n\n  // Memcached username, optional.\n  // username: \"...\",\n\n  // Memcached password, optional.\n  // password: \"...\",\n\n  // The default t [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"memcached\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"memcached\", {\n  // network address of the memcached service.\n  //\n  // For example: \"tcp://localhost:11211\"\n  // endpoint: \"...\",\n\n  // the working directory of the service. Can be \"/path/to/dir\"\n  //\n  // default is \"/\"\n  // root: \"...\",\n\n  // Memcached username, optional.\n  // username: \"...\",\n\n  // Memcached password, optional.\n  // password: \"...\",\n\n  // The def [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"memcached\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// network address of the memcached service.\n//\n// For example: \"tcp://localhost:11211\"\n// conf.put(\"endpoint\", \"...\");\n\n// the working directory of the service. Can be \"/path/to/dir\"\n//\n// default is \"/\"\n// conf.put(\"root\", \"...\");\n\n// Memcached username, optional.\n// conf.put(\"username\", \"...\");\n\n// Memca [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/memcached\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(memcached.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/memcached\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(memcached.Scheme, opendal.OperatorOptions{\n\t// network address of the memcached service.\n\t//\n\t// For example: \"tcp://localhost:11211\"\n\t// \"endpoint\": \"...\",\n\n\t// the working directory of the service. Can be \"/path/to/dir\"\n\t//\n\t// default is \"/\"\n\t// \"root\": \"...\",\n\n\t// Memcached  [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"memcached\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// network address of the memcached service.\n//\n// For example: \"tcp://localhost:11211\"\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// the working directory of the service. Can be \"/path/to/dir\"\n//\n// default is \"/\"\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Memcached username, optional.\n// opendal_operator_options_ [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"memcached\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // network address of the memcached service.\n    //\n    // For example: \"tcp://localhost:11211\"\n    // {\"endpoint\", \"...\"},\n\n    // the working directory of the service. Can be \"/path/to/dir\"\n    //\n    // default is \"/\"\n    // {\"root\", \"...\"},\n\n    // Memcached username, optional.\n    // {\"username\", \"...\"},\n\n    // Memcached password, optional.\n    // [...]
         }
       ]
     },
@@ -2387,26 +3073,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"memory\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"memory\", [\n    // root of the backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"memory\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"memory\", [\n    // root of the backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"memory\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of the backend.\n// config.put(\"root\", \"...\");\nOperator operator = Operator.of(\"memory\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"memory\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"memory\",\n    # root of the backend.\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"memory\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"memory\",\n    # root of the backend.\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"memory\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"memory\", {\n  // root of the backend.\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"memory\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"memory\", {\n  // root of the backend.\n  // root: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"memory\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of the backend.\n// conf.put(\"root\", \"...\");\n\nOperator op = Operator.of(\"memory\", conf);"
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"memory\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"memory\", {\n  # root of the backend.\n  # \"root\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/memory\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(memory.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/memory\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(memory.Scheme, opendal.OperatorOptions{\n\t// root of the backend.\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"memory\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of the backend.\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"memory\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);"
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"memory\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of the backend.\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"memory\", config);"
         }
       ]
     },
@@ -2450,26 +3160,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"mini-moka\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"mini-moka\", [\n    // Sets the max capacity of the cache.\n    //\n    // Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n    // (\"max_capacity\".to_string(), \"1000\".to_string()),\n\n    // Sets the time to live of the cache.\n    //\n    // Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](https://do [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"mini-moka\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"mini-moka\", [\n    // Sets the max capacity of the cache.\n    //\n    // Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n    // (\"max_capacity\".to_string(), \"1000\".to_string()),\n\n    // Sets the time to live of the cache.\n    //\n    // Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](http [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"mini-moka\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Sets the max capacity of the cache.\n//\n// Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n// config.put(\"max_capacity\", \"1000\");\n\n// Sets the time to live of the cache.\n//\n// Refer to [`mini-moka::sync::CacheBuilder::tim [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"mini-moka\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"mini-moka\",\n    # Sets the max capacity of the cache.\n    #\n    # Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n    # max_capacity=\"1000\",\n\n    # Sets the time to live of the cache.\n    #\n    # Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.Cac [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"mini-moka\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"mini-moka\",\n    # Sets the max capacity of the cache.\n    #\n    # Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n    # max_capacity=\"1000\",\n\n    # Sets the time to live of the cache.\n    #\n    # Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](https://docs.rs/mini-moka/latest/mini_moka/sync/stru [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"mini-moka\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"mini-moka\", {\n  // Sets the max capacity of the cache.\n  //\n  // Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n  // max_capacity: \"1000\",\n\n  // Sets the time to live of the cache.\n  //\n  // Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](https://docs.rs/mini-moka/latest/mini_moka/ [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"mini-moka\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"mini-moka\", {\n  // Sets the max capacity of the cache.\n  //\n  // Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n  // max_capacity: \"1000\",\n\n  // Sets the time to live of the cache.\n  //\n  // Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](https://docs.rs/mini-moka/latest/mini [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"mini-moka\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Sets the max capacity of the cache.\n//\n// Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n// conf.put(\"max_capacity\", \"1000\");\n\n// Sets the time to live of the cache.\n//\n// Refer to [`mini-moka::sync::CacheBuilder::time_to [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/mini-moka\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(mini-moka.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/mini-moka\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(mini-moka.Scheme, opendal.OperatorOptions{\n\t// Sets the max capacity of the cache.\n\t//\n\t// Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n\t// \"max_capacity\": \"1000\",\n\n\t// Sets the time to live o [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"mini-moka\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Sets the max capacity of the cache.\n//\n// Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n// opendal_operator_options_set(options, \"max_capacity\", \"1000\");\n\n// Sets the time to live of the cache.\n//\n// Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](ht [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"mini-moka\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Sets the max capacity of the cache.\n    //\n    // Refer to [`mini-moka::sync::CacheBuilder::max_capacity`](https://docs.rs/mini-moka/latest/mini_moka/sync/struct.CacheBuilder.html#method.max_capacity)\n    // {\"max_capacity\", \"1000\"},\n\n    // Sets the time to live of the cache.\n    //\n    // Refer to [`mini-moka::sync::CacheBuilder::time_to_live`](https://docs.rs/mini-mok [...]
         }
       ]
     },
@@ -2520,26 +3248,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"moka\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"moka\", [\n    // Name for this cache instance.\n    // (\"name\".to_string(), \"...\".to_string()),\n\n    // Sets the max capacity of the cache.\n    //\n    // Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n    // (\"max_capacity\".to_string(), \"1000\".to_string()),\n\n    // Sets the time to live of the cache.\n    / [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"moka\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"moka\", [\n    // Name for this cache instance.\n    // (\"name\".to_string(), \"...\".to_string()),\n\n    // Sets the max capacity of the cache.\n    //\n    // Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n    // (\"max_capacity\".to_string(), \"1000\".to_string()),\n\n    // Sets the time to live of the cache.\ [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"moka\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Name for this cache instance.\n// config.put(\"name\", \"...\");\n\n// Sets the max capacity of the cache.\n//\n// Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n// config.put(\"max_capacity\", \"1000\");\n\n// Sets the time to live of the  [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"moka\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"moka\",\n    # Name for this cache instance.\n    # name=\"...\",\n\n    # Sets the max capacity of the cache.\n    #\n    # Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n    # max_capacity=\"1000\",\n\n    # Sets the time to live of the cache.\n    #\n    # Refer to [`moka::future::CacheBuilder::time_to_live`](https://docs.rs/m [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"moka\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"moka\",\n    # Name for this cache instance.\n    # name=\"...\",\n\n    # Sets the max capacity of the cache.\n    #\n    # Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n    # max_capacity=\"1000\",\n\n    # Sets the time to live of the cache.\n    #\n    # Refer to [`moka::future::CacheBuilder::time_to_live`](https://doc [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"moka\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"moka\", {\n  // Name for this cache instance.\n  // name: \"...\",\n\n  // Sets the max capacity of the cache.\n  //\n  // Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n  // max_capacity: \"1000\",\n\n  // Sets the time to live of the cache.\n  //\n  // Refer to [`moka::future::CacheBuilder::time_to_live`](htt [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"moka\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"moka\", {\n  // Name for this cache instance.\n  // name: \"...\",\n\n  // Sets the max capacity of the cache.\n  //\n  // Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n  // max_capacity: \"1000\",\n\n  // Sets the time to live of the cache.\n  //\n  // Refer to [`moka::future::CacheBuilder::time_to_live [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"moka\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Name for this cache instance.\n// conf.put(\"name\", \"...\");\n\n// Sets the max capacity of the cache.\n//\n// Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n// conf.put(\"max_capacity\", \"1000\");\n\n// Sets the time to live of the cache. [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/moka\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(moka.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/moka\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(moka.Scheme, opendal.OperatorOptions{\n\t// Name for this cache instance.\n\t// \"name\": \"...\",\n\n\t// Sets the max capacity of the cache.\n\t//\n\t// Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n\t// \"max_capacity\": [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"moka\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Name for this cache instance.\n// opendal_operator_options_set(options, \"name\", \"...\");\n\n// Sets the max capacity of the cache.\n//\n// Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n// opendal_operator_options_set(options, \"max_capacity\", \"1000\");\n\n// Sets the time to [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"moka\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Name for this cache instance.\n    // {\"name\", \"...\"},\n\n    // Sets the max capacity of the cache.\n    //\n    // Refer to [`moka::future::CacheBuilder::max_capacity`](https://docs.rs/moka/latest/moka/future/struct.CacheBuilder.html#method.max_capacity)\n    // {\"max_capacity\", \"1000\"},\n\n    // Sets the time to live of the cache.\n    //\n    // Refer to [`moka::future [...]
         }
       ]
     },
@@ -2597,26 +3343,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"mongodb\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"mongodb\", [\n    // connection string of this backend\n    // (\"connection_string\".to_string(), \"...\".to_string()),\n\n    // database of this backend\n    // (\"database\".to_string(), \"...\".to_string()),\n\n    // collection of this backend\n    // (\"collection\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // key field of t [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"mongodb\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"mongodb\", [\n    // connection string of this backend\n    // (\"connection_string\".to_string(), \"...\".to_string()),\n\n    // database of this backend\n    // (\"database\".to_string(), \"...\".to_string()),\n\n    // collection of this backend\n    // (\"collection\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // key fiel [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"mongodb\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// connection string of this backend\n// config.put(\"connection_string\", \"...\");\n\n// database of this backend\n// config.put(\"database\", \"...\");\n\n// collection of this backend\n// config.put(\"collection\", \"...\");\n\n// root of this backend\n// config.put(\"root\", \"...\");\n\n// key field of this backend\n// config.put [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"mongodb\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"mongodb\",\n    # connection string of this backend\n    # connection_string=\"...\",\n\n    # database of this backend\n    # database=\"...\",\n\n    # collection of this backend\n    # collection=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # key field of this backend\n    # key_field=\"...\",\n\n    # value field of this backend\n    # value_field=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"mongodb\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"mongodb\",\n    # connection string of this backend\n    # connection_string=\"...\",\n\n    # database of this backend\n    # database=\"...\",\n\n    # collection of this backend\n    # collection=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # key field of this backend\n    # key_field=\"...\",\n\n    # value field of this backend\n    # value_field=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"mongodb\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"mongodb\", {\n  // connection string of this backend\n  // connection_string: \"...\",\n\n  // database of this backend\n  // database: \"...\",\n\n  // collection of this backend\n  // collection: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // key field of this backend\n  // key_field: \"...\",\n\n  // value field of this backend\n  // value_field: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"mongodb\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"mongodb\", {\n  // connection string of this backend\n  // connection_string: \"...\",\n\n  // database of this backend\n  // database: \"...\",\n\n  // collection of this backend\n  // collection: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // key field of this backend\n  // key_field: \"...\",\n\n  // value field of this backend\n  // value_field: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"mongodb\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// connection string of this backend\n// conf.put(\"connection_string\", \"...\");\n\n// database of this backend\n// conf.put(\"database\", \"...\");\n\n// collection of this backend\n// conf.put(\"collection\", \"...\");\n\n// root of this backend\n// conf.put(\"root\", \"...\");\n\n// key field of this backend\n// conf.put(\"key_field [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/mongodb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(mongodb.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/mongodb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(mongodb.Scheme, opendal.OperatorOptions{\n\t// connection string of this backend\n\t// \"connection_string\": \"...\",\n\n\t// database of this backend\n\t// \"database\": \"...\",\n\n\t// collection of this backend\n\t// \"collection\": \"...\",\n\n\t// root of this backend\n\t// \"root\": \"...\",\n\n\t// key fi [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"mongodb\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// connection string of this backend\n// opendal_operator_options_set(options, \"connection_string\", \"...\");\n\n// database of this backend\n// opendal_operator_options_set(options, \"database\", \"...\");\n\n// collection of this backend\n// opendal_operator_options_set(options, \"collection\", \"...\");\n\n// root of this backend\n// opendal_operator_options_set(options, [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"mongodb\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // connection string of this backend\n    // {\"connection_string\", \"...\"},\n\n    // database of this backend\n    // {\"database\", \"...\"},\n\n    // collection of this backend\n    // {\"collection\", \"...\"},\n\n    // root of this backend\n    // {\"root\", \"...\"},\n\n    // key field of this backend\n    // {\"key_field\", \"...\"},\n\n    // value field of this backend\ [...]
         }
       ]
     },
@@ -2639,20 +3403,38 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"monoiofs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"monoiofs\", [\n    // The Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Builder::build will return error if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"monoiofs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"monoiofs\", [\n    // The Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Builder::build will return error if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"monoiofs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"monoiofs\",\n    # The Root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # Builder::build will return error if not set.\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"monoiofs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"monoiofs\",\n    # The Root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # Builder::build will return error if not set.\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"monoiofs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"monoiofs\", {\n  // The Root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // Builder::build will return error if not set.\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"monoiofs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"monoiofs\", {\n  // The Root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // Builder::build will return error if not set.\n  // root: \"...\",\n});"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/monoiofs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(monoiofs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/monoiofs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(monoiofs.Scheme, opendal.OperatorOptions{\n\t// The Root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t//\n\t// Builder::build will return error if not set.\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"monoiofs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The Root of this backend.\n//\n// All operations will happen under this root.\n//\n// Builder::build will return error if not set.\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"monoiofs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(ope [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"monoiofs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Builder::build will return error if not set.\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"monoiofs\", config);"
         }
       ]
     },
@@ -2703,26 +3485,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"mysql\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"mysql\", [\n    // This connection string is used to connect to the mysql service. There are url based formats.\n    //\n    // The format of connect string resembles the url format of the mysql client.\n    // The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n    //\n    // - `mysql://user@localhost`\n    // - `mysql://user:password@localhost`\n    // -  [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"mysql\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"mysql\", [\n    // This connection string is used to connect to the mysql service. There are url based formats.\n    //\n    // The format of connect string resembles the url format of the mysql client.\n    // The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n    //\n    // - `mysql://user@localhost`\n    // - `mysql://user:password@localhost`\n    [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"mysql\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// This connection string is used to connect to the mysql service. There are url based formats.\n//\n// The format of connect string resembles the url format of the mysql client.\n// The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n//\n// - `mysql://user@localhost`\n// - `mys [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"mysql\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"mysql\",\n    # This connection string is used to connect to the mysql service. There are url based formats.\n    #\n    # The format of connect string resembles the url format of the mysql client.\n    # The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n    #\n    # - `mysql://user@localhost`\n    # - `mysql://user:password@localhost`\n    # - `mysql://user:pass [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"mysql\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"mysql\",\n    # This connection string is used to connect to the mysql service. There are url based formats.\n    #\n    # The format of connect string resembles the url format of the mysql client.\n    # The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n    #\n    # - `mysql://user@localhost`\n    # - `mysql://user:password@localhost`\n    # - `mysql://use [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"mysql\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"mysql\", {\n  // This connection string is used to connect to the mysql service. There are url based formats.\n  //\n  // The format of connect string resembles the url format of the mysql client.\n  // The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n  //\n  // - `mysql://user@localhost`\n  // - `mysql://user:password@localhost`\n  // - `mysq [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"mysql\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"mysql\", {\n  // This connection string is used to connect to the mysql service. There are url based formats.\n  //\n  // The format of connect string resembles the url format of the mysql client.\n  // The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n  //\n  // - `mysql://user@localhost`\n  // - `mysql://user:password@localhost`\n  // - [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"mysql\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// This connection string is used to connect to the mysql service. There are url based formats.\n//\n// The format of connect string resembles the url format of the mysql client.\n// The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n//\n// - `mysql://user@localhost`\n// - `mysql [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/mysql\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(mysql.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/mysql\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(mysql.Scheme, opendal.OperatorOptions{\n\t// This connection string is used to connect to the mysql service. There are url based formats.\n\t//\n\t// The format of connect string resembles the url format of the mysql client.\n\t// The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1 [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"mysql\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// This connection string is used to connect to the mysql service. There are url based formats.\n//\n// The format of connect string resembles the url format of the mysql client.\n// The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n//\n// - `mysql://user@localhost`\n// - `mysql://user:password@localhost`\n// - `mysq [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"mysql\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // This connection string is used to connect to the mysql service. There are url based formats.\n    //\n    // The format of connect string resembles the url format of the mysql client.\n    // The format is: `[scheme://][user[:[password]]@]host[:port][/schema][?attribute1=value1&attribute2=value2...`\n    //\n    // - `mysql://user@localhost`\n    // - `mysql://user:password@localho [...]
         }
       ]
     },
@@ -2784,26 +3584,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"obs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"obs\", [\n    // Root for obs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for obs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Access key id for obs.\n    // (\"access_key_id\".to_string(), \"...\".to_string()),\n\n    // Secret access key for obs.\n    // (\"secret_access_key\".to_string(), \"...\".to_string()),\n\n    // Bucket for obs.\n    // (\"bucket\".to_s [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"obs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"obs\", [\n    // Root for obs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for obs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Access key id for obs.\n    // (\"access_key_id\".to_string(), \"...\".to_string()),\n\n    // Secret access key for obs.\n    // (\"secret_access_key\".to_string(), \"...\".to_string()),\n\n    // Bucket for obs.\n    // (\"bucket\ [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"obs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root for obs.\n// config.put(\"root\", \"...\");\n\n// Endpoint for obs.\n// config.put(\"endpoint\", \"...\");\n\n// Access key id for obs.\n// config.put(\"access_key_id\", \"...\");\n\n// Secret access key for obs.\n// config.put(\"secret_access_key\", \"...\");\n\n// Bucket for obs.\n// config.put(\"bucket\", \"...\");\nOperator [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"obs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"obs\",\n    # Root for obs.\n    # root=\"...\",\n\n    # Endpoint for obs.\n    # endpoint=\"...\",\n\n    # Access key id for obs.\n    # access_key_id=\"...\",\n\n    # Secret access key for obs.\n    # secret_access_key=\"...\",\n\n    # Bucket for obs.\n    # bucket=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"obs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"obs\",\n    # Root for obs.\n    # root=\"...\",\n\n    # Endpoint for obs.\n    # endpoint=\"...\",\n\n    # Access key id for obs.\n    # access_key_id=\"...\",\n\n    # Secret access key for obs.\n    # secret_access_key=\"...\",\n\n    # Bucket for obs.\n    # bucket=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"obs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"obs\", {\n  // Root for obs.\n  // root: \"...\",\n\n  // Endpoint for obs.\n  // endpoint: \"...\",\n\n  // Access key id for obs.\n  // access_key_id: \"...\",\n\n  // Secret access key for obs.\n  // secret_access_key: \"...\",\n\n  // Bucket for obs.\n  // bucket: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"obs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"obs\", {\n  // Root for obs.\n  // root: \"...\",\n\n  // Endpoint for obs.\n  // endpoint: \"...\",\n\n  // Access key id for obs.\n  // access_key_id: \"...\",\n\n  // Secret access key for obs.\n  // secret_access_key: \"...\",\n\n  // Bucket for obs.\n  // bucket: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"obs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root for obs.\n// conf.put(\"root\", \"...\");\n\n// Endpoint for obs.\n// conf.put(\"endpoint\", \"...\");\n\n// Access key id for obs.\n// conf.put(\"access_key_id\", \"...\");\n\n// Secret access key for obs.\n// conf.put(\"secret_access_key\", \"...\");\n\n// Bucket for obs.\n// conf.put(\"bucket\", \"...\");\n\nOperator op = Oper [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"obs\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"obs\", {\n  # Root for obs.\n  # \"root\" => \"...\",\n\n  # Endpoint for obs.\n  # \"endpoint\" => \"...\",\n\n  # Access key id for obs.\n  # \"access_key_id\" => \"...\",\n\n  # Secret access key for obs.\n  # \"secret_access_key\" => \"...\",\n\n  # Bucket for obs.\n  # \"bucket\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/obs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(obs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/obs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(obs.Scheme, opendal.OperatorOptions{\n\t// Root for obs.\n\t// \"root\": \"...\",\n\n\t// Endpoint for obs.\n\t// \"endpoint\": \"...\",\n\n\t// Access key id for obs.\n\t// \"access_key_id\": \"...\",\n\n\t// Secret access key for obs.\n\t// \"secret_access_key\": \"...\",\n\n\t// Bucket for obs.\n\t// \"bucket\": \" [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"obs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root for obs.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Endpoint for obs.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// Access key id for obs.\n// opendal_operator_options_set(options, \"access_key_id\", \"...\");\n\n// Secret access key for obs.\n// opendal_operator_options_set(options, \"secret_access_key\", \"...\");\n [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"obs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root for obs.\n    // {\"root\", \"...\"},\n\n    // Endpoint for obs.\n    // {\"endpoint\", \"...\"},\n\n    // Access key id for obs.\n    // {\"access_key_id\", \"...\"},\n\n    // Secret access key for obs.\n    // {\"secret_access_key\", \"...\"},\n\n    // Bucket for obs.\n    // {\"bucket\", \"...\"},\n};\nopendal::Operator operator(\"obs\", config);"
         }
       ]
     },
@@ -2865,26 +3689,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"onedrive\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"onedrive\", [\n    // The root path for the OneDrive service for the file access\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Microsoft Graph API (also OneDrive API) access token\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // Microsoft Graph API (also OneDrive API) refresh token\n    // (\"refresh_token\".to_string(), \"...\".to_string()),\n\n    // Microsoft Graph API App [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"onedrive\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"onedrive\", [\n    // The root path for the OneDrive service for the file access\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Microsoft Graph API (also OneDrive API) access token\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // Microsoft Graph API (also OneDrive API) refresh token\n    // (\"refresh_token\".to_string(), \"...\".to_string()),\n\n    // Microsoft Graph A [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"onedrive\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The root path for the OneDrive service for the file access\n// config.put(\"root\", \"...\");\n\n// Microsoft Graph API (also OneDrive API) access token\n// config.put(\"access_token\", \"...\");\n\n// Microsoft Graph API (also OneDrive API) refresh token\n// config.put(\"refresh_token\", \"...\");\n\n// Microsoft Graph API Applicat [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"onedrive\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"onedrive\",\n    # The root path for the OneDrive service for the file access\n    # root=\"...\",\n\n    # Microsoft Graph API (also OneDrive API) access token\n    # access_token=\"...\",\n\n    # Microsoft Graph API (also OneDrive API) refresh token\n    # refresh_token=\"...\",\n\n    # Microsoft Graph API Application (client) ID that is in the Azure's app registration portal\n    # client_id=\"...\",\n\n    # Microso [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"onedrive\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"onedrive\",\n    # The root path for the OneDrive service for the file access\n    # root=\"...\",\n\n    # Microsoft Graph API (also OneDrive API) access token\n    # access_token=\"...\",\n\n    # Microsoft Graph API (also OneDrive API) refresh token\n    # refresh_token=\"...\",\n\n    # Microsoft Graph API Application (client) ID that is in the Azure's app registration portal\n    # client_id=\"...\",\n\n    # M [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"onedrive\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"onedrive\", {\n  // The root path for the OneDrive service for the file access\n  // root: \"...\",\n\n  // Microsoft Graph API (also OneDrive API) access token\n  // access_token: \"...\",\n\n  // Microsoft Graph API (also OneDrive API) refresh token\n  // refresh_token: \"...\",\n\n  // Microsoft Graph API Application (client) ID that is in the Azure's app registration portal\n  // client_id: \"...\", [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"onedrive\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"onedrive\", {\n  // The root path for the OneDrive service for the file access\n  // root: \"...\",\n\n  // Microsoft Graph API (also OneDrive API) access token\n  // access_token: \"...\",\n\n  // Microsoft Graph API (also OneDrive API) refresh token\n  // refresh_token: \"...\",\n\n  // Microsoft Graph API Application (client) ID that is in the Azure's app registration portal\n  // client_id: \" [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"onedrive\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The root path for the OneDrive service for the file access\n// conf.put(\"root\", \"...\");\n\n// Microsoft Graph API (also OneDrive API) access token\n// conf.put(\"access_token\", \"...\");\n\n// Microsoft Graph API (also OneDrive API) refresh token\n// conf.put(\"refresh_token\", \"...\");\n\n// Microsoft Graph API Application (cli [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/onedrive\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(onedrive.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/onedrive\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(onedrive.Scheme, opendal.OperatorOptions{\n\t// The root path for the OneDrive service for the file access\n\t// \"root\": \"...\",\n\n\t// Microsoft Graph API (also OneDrive API) access token\n\t// \"access_token\": \"...\",\n\n\t// Microsoft Graph API (also OneDrive API) refresh token\n\t// \"refresh_token\": \ [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"onedrive\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The root path for the OneDrive service for the file access\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Microsoft Graph API (also OneDrive API) access token\n// opendal_operator_options_set(options, \"access_token\", \"...\");\n\n// Microsoft Graph API (also OneDrive API) refresh token\n// opendal_operator_options_set(options, \"refresh_token\", \".. [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"onedrive\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The root path for the OneDrive service for the file access\n    // {\"root\", \"...\"},\n\n    // Microsoft Graph API (also OneDrive API) access token\n    // {\"access_token\", \"...\"},\n\n    // Microsoft Graph API (also OneDrive API) refresh token\n    // {\"refresh_token\", \"...\"},\n\n    // Microsoft Graph API Application (client) ID that is in the Azure's app registration  [...]
         }
       ]
     },
@@ -2907,14 +3749,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"opfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"opfs\", [\n    // Root directory for this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"opfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"opfs\", [\n    // Root directory for this backend.\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"opfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"opfs\",\n    # Root directory for this backend.\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"opfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"opfs\",\n    # Root directory for this backend.\n    # root=\"...\",\n)"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/opfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(opfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/opfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(opfs.Scheme, opendal.OperatorOptions{\n\t// Root directory for this backend.\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"opfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root directory for this backend.\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"opfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);"
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"opfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root directory for this backend.\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"opfs\", config);"
         }
       ]
     },
@@ -3100,26 +3960,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"oss\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"oss\", [\n    // Root for oss.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for oss.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Presign endpoint for oss.\n    // (\"presign_endpoint\".to_string(), \"...\".to_string()),\n\n    // Bucket for oss.\n    (\"bucket\".to_string(), \"...\".to_string()),\n\n    // Addressing style for oss.\n    // (\"addressing_style\".to_ [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"oss\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"oss\", [\n    // Root for oss.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for oss.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Presign endpoint for oss.\n    // (\"presign_endpoint\".to_string(), \"...\".to_string()),\n\n    // Bucket for oss.\n    (\"bucket\".to_string(), \"...\".to_string()),\n\n    // Addressing style for oss.\n    // (\"addressing_style [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"bucket\", \"...\");\nOperator operator = Operator.of(\"oss\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root for oss.\n// config.put(\"root\", \"...\");\n\n// Endpoint for oss.\n// config.put(\"endpoint\", \"...\");\n\n// Presign endpoint for oss.\n// config.put(\"presign_endpoint\", \"...\");\n\n// Bucket for oss.\nconfig.put(\"bucket\", \"...\");\n\n// Addressing style for oss.\n// config.put(\"addressing_style\", \"...\");\n\n// Pr [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"oss\",\n    bucket=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"oss\",\n    # Root for oss.\n    # root=\"...\",\n\n    # Endpoint for oss.\n    # endpoint=\"...\",\n\n    # Presign endpoint for oss.\n    # presign_endpoint=\"...\",\n\n    # Bucket for oss.\n    bucket=\"...\",\n\n    # Addressing style for oss.\n    # addressing_style=\"...\",\n\n    # Pre sign addressing style for oss.\n    # presign_addressing_style=\"...\",\n\n    # Server side encryption for oss.\n    # server_si [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"oss\",\n    bucket=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"oss\",\n    # Root for oss.\n    # root=\"...\",\n\n    # Endpoint for oss.\n    # endpoint=\"...\",\n\n    # Presign endpoint for oss.\n    # presign_endpoint=\"...\",\n\n    # Bucket for oss.\n    bucket=\"...\",\n\n    # Addressing style for oss.\n    # addressing_style=\"...\",\n\n    # Pre sign addressing style for oss.\n    # presign_addressing_style=\"...\",\n\n    # Server side encryption for oss.\n    # ser [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"oss\", {\n  bucket: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"oss\", {\n  // Root for oss.\n  // root: \"...\",\n\n  // Endpoint for oss.\n  // endpoint: \"...\",\n\n  // Presign endpoint for oss.\n  // presign_endpoint: \"...\",\n\n  // Bucket for oss.\n  bucket: \"...\",\n\n  // Addressing style for oss.\n  // addressing_style: \"...\",\n\n  // Pre sign addressing style for oss.\n  // presign_addressing_style: \"...\",\n\n  // Server side encryption for oss.\n   [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"oss\", {\n  bucket: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"oss\", {\n  // Root for oss.\n  // root: \"...\",\n\n  // Endpoint for oss.\n  // endpoint: \"...\",\n\n  // Presign endpoint for oss.\n  // presign_endpoint: \"...\",\n\n  // Bucket for oss.\n  bucket: \"...\",\n\n  // Addressing style for oss.\n  // addressing_style: \"...\",\n\n  // Pre sign addressing style for oss.\n  // presign_addressing_style: \"...\",\n\n  // Server side encryption for os [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"bucket\", \"...\");\nOperator op = Operator.of(\"oss\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root for oss.\n// conf.put(\"root\", \"...\");\n\n// Endpoint for oss.\n// conf.put(\"endpoint\", \"...\");\n\n// Presign endpoint for oss.\n// conf.put(\"presign_endpoint\", \"...\");\n\n// Bucket for oss.\nconf.put(\"bucket\", \"...\");\n\n// Addressing style for oss.\n// conf.put(\"addressing_style\", \"...\");\n\n// Pre sign addre [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"oss\", {\n  \"bucket\" => \"...\",\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"oss\", {\n  # Root for oss.\n  # \"root\" => \"...\",\n\n  # Endpoint for oss.\n  # \"endpoint\" => \"...\",\n\n  # Presign endpoint for oss.\n  # \"presign_endpoint\" => \"...\",\n\n  # Bucket for oss.\n  \"bucket\" => \"...\",\n\n  # Addressing style for oss.\n  # \"addressing_style\" => \"...\",\n\n  # Pre sign addressing style for oss.\n  # \"presign_addressing_style\" => \"...\",\n\n  # Server side encrypti [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/oss\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(oss.Scheme, opendal.OperatorOptions{\n\t\"bucket\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/oss\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(oss.Scheme, opendal.OperatorOptions{\n\t// Root for oss.\n\t// \"root\": \"...\",\n\n\t// Endpoint for oss.\n\t// \"endpoint\": \"...\",\n\n\t// Presign endpoint for oss.\n\t// \"presign_endpoint\": \"...\",\n\n\t// Bucket for oss.\n\t\"bucket\": \"...\",\n\n\t// Addressing style for oss.\n\t// \"addressing_style\": \ [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"bucket\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"oss\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root for oss.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Endpoint for oss.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// Presign endpoint for oss.\n// opendal_operator_options_set(options, \"presign_endpoint\", \"...\");\n\n// Bucket for oss.\nopendal_operator_options_set(options, \"bucket\", \"...\");\n\n// Addressing sty [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"bucket\", \"...\"},\n};\nopendal::Operator operator(\"oss\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root for oss.\n    // {\"root\", \"...\"},\n\n    // Endpoint for oss.\n    // {\"endpoint\", \"...\"},\n\n    // Presign endpoint for oss.\n    // {\"presign_endpoint\", \"...\"},\n\n    // Bucket for oss.\n    {\"bucket\", \"...\"},\n\n    // Addressing style for oss.\n    // {\"addressing_style\", \"...\"},\n\n    // Pre sign addressing style for oss.\n    // {\"presign_addressi [...]
         }
       ]
     },
@@ -3163,14 +4047,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"pcloud\", [\n    (\"endpoint\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"pcloud\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // pCloud endpoint address.\n    (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // pCloud username.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // pCloud password.\n    // (\"password\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"pcloud\", [\n    (\"endpoint\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"pcloud\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // pCloud endpoint address.\n    (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // pCloud username.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // pCloud password.\n    // (\"password\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"pcloud\",\n    endpoint=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"pcloud\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # pCloud endpoint address.\n    endpoint=\"...\",\n\n    # pCloud username.\n    # username=\"...\",\n\n    # pCloud password.\n    # password=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"pcloud\",\n    endpoint=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"pcloud\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # pCloud endpoint address.\n    endpoint=\"...\",\n\n    # pCloud username.\n    # username=\"...\",\n\n    # pCloud password.\n    # password=\"...\",\n)"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/pcloud\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(pcloud.Scheme, opendal.OperatorOptions{\n\t\"endpoint\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/pcloud\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(pcloud.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// pCloud endpoint address.\n\t\"endpoint\": \"...\",\n\n\t// pCloud username.\n\t// \"username\": \"...\",\n\n\t// pCloud password.\n\t// \"password\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"endpoint\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"pcloud\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// pCloud endpoint address.\nopendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// pCloud username.\n// opendal_operator_options_set(options, \"username\", \"...\");\n\n// pCloud password.\n// opendal_operator_options_set( [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"endpoint\", \"...\"},\n};\nopendal::Operator operator(\"pcloud\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // pCloud endpoint address.\n    {\"endpoint\", \"...\"},\n\n    // pCloud username.\n    // {\"username\", \"...\"},\n\n    // pCloud password.\n    // {\"password\", \"...\"},\n};\nopendal::Operator operator(\"pcloud\", config);"
         }
       ]
     },
@@ -3207,26 +4109,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"persy\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"persy\", [\n    // That path to the persy data file. The directory in the path must already exist.\n    // (\"datafile\".to_string(), \"...\".to_string()),\n\n    // That name of the persy segment.\n    // (\"segment\".to_string(), \"...\".to_string()),\n\n    // That name of the persy index.\n    // (\"index\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"persy\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"persy\", [\n    // That path to the persy data file. The directory in the path must already exist.\n    // (\"datafile\".to_string(), \"...\".to_string()),\n\n    // That name of the persy segment.\n    // (\"segment\".to_string(), \"...\".to_string()),\n\n    // That name of the persy index.\n    // (\"index\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"persy\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// That path to the persy data file. The directory in the path must already exist.\n// config.put(\"datafile\", \"...\");\n\n// That name of the persy segment.\n// config.put(\"segment\", \"...\");\n\n// That name of the persy index.\n// config.put(\"index\", \"...\");\nOperator operator = Operator.of(\"persy\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"persy\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"persy\",\n    # That path to the persy data file. The directory in the path must already exist.\n    # datafile=\"...\",\n\n    # That name of the persy segment.\n    # segment=\"...\",\n\n    # That name of the persy index.\n    # index=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"persy\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"persy\",\n    # That path to the persy data file. The directory in the path must already exist.\n    # datafile=\"...\",\n\n    # That name of the persy segment.\n    # segment=\"...\",\n\n    # That name of the persy index.\n    # index=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"persy\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"persy\", {\n  // That path to the persy data file. The directory in the path must already exist.\n  // datafile: \"...\",\n\n  // That name of the persy segment.\n  // segment: \"...\",\n\n  // That name of the persy index.\n  // index: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"persy\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"persy\", {\n  // That path to the persy data file. The directory in the path must already exist.\n  // datafile: \"...\",\n\n  // That name of the persy segment.\n  // segment: \"...\",\n\n  // That name of the persy index.\n  // index: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"persy\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// That path to the persy data file. The directory in the path must already exist.\n// conf.put(\"datafile\", \"...\");\n\n// That name of the persy segment.\n// conf.put(\"segment\", \"...\");\n\n// That name of the persy index.\n// conf.put(\"index\", \"...\");\n\nOperator op = Operator.of(\"persy\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/persy\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(persy.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/persy\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(persy.Scheme, opendal.OperatorOptions{\n\t// That path to the persy data file. The directory in the path must already exist.\n\t// \"datafile\": \"...\",\n\n\t// That name of the persy segment.\n\t// \"segment\": \"...\",\n\n\t// That name of the persy index.\n\t// \"index\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"persy\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// That path to the persy data file. The directory in the path must already exist.\n// opendal_operator_options_set(options, \"datafile\", \"...\");\n\n// That name of the persy segment.\n// opendal_operator_options_set(options, \"segment\", \"...\");\n\n// That name of the persy index.\n// opendal_operator_options_set(options, \"index\", \"...\");\nopendal_result_operator_ne [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"persy\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // That path to the persy data file. The directory in the path must already exist.\n    // {\"datafile\", \"...\"},\n\n    // That name of the persy segment.\n    // {\"segment\", \"...\"},\n\n    // That name of the persy index.\n    // {\"index\", \"...\"},\n};\nopendal::Operator operator(\"persy\", config);"
         }
       ]
     },
@@ -3277,26 +4197,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"postgresql\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"postgresql\", [\n    // Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The URL should be with a scheme of either `postgres://` or `postgresql://`.\n    //\n    // - `postgresql://user@localhost`\n    // - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_time [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"postgresql\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"postgresql\", [\n    // Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The URL should be with a scheme of either `postgres://` or `postgresql://`.\n    //\n    // - `postgresql://user@localhost`\n    // - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connec [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"postgresql\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root of this backend.\n//\n// All operations will happen under this root.\n//\n// Default to `/` if not set.\n// config.put(\"root\", \"...\");\n\n// The URL should be with a scheme of either `postgres://` or `postgresql://`.\n//\n// - `postgresql://user@localhost`\n// - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?con [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"postgresql\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"postgresql\",\n    # Root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # Default to `/` if not set.\n    # root=\"...\",\n\n    # The URL should be with a scheme of either `postgres://` or `postgresql://`.\n    #\n    # - `postgresql://user@localhost`\n    # - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_timeout=10`\n    # - `postgresql://user@host1:1234,host [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"postgresql\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"postgresql\",\n    # Root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # Default to `/` if not set.\n    # root=\"...\",\n\n    # The URL should be with a scheme of either `postgres://` or `postgresql://`.\n    #\n    # - `postgresql://user@localhost`\n    # - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_timeout=10`\n    # - `postgresql://user@host1:123 [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"postgresql\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"postgresql\", {\n  // Root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // Default to `/` if not set.\n  // root: \"...\",\n\n  // The URL should be with a scheme of either `postgres://` or `postgresql://`.\n  //\n  // - `postgresql://user@localhost`\n  // - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_timeout=10`\n  // - `postgresql://user@host [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"postgresql\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"postgresql\", {\n  // Root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // Default to `/` if not set.\n  // root: \"...\",\n\n  // The URL should be with a scheme of either `postgres://` or `postgresql://`.\n  //\n  // - `postgresql://user@localhost`\n  // - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_timeout=10`\n  // - `postgresql://use [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"postgresql\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root of this backend.\n//\n// All operations will happen under this root.\n//\n// Default to `/` if not set.\n// conf.put(\"root\", \"...\");\n\n// The URL should be with a scheme of either `postgres://` or `postgresql://`.\n//\n// - `postgresql://user@localhost`\n// - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/postgresql\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(postgresql.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/postgresql\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(postgresql.Scheme, opendal.OperatorOptions{\n\t// Root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t//\n\t// Default to `/` if not set.\n\t// \"root\": \"...\",\n\n\t// The URL should be with a scheme of either `postgres://` or `postgresql://`.\n\t//\n\t// - `postgresql://user@loc [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"postgresql\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root of this backend.\n//\n// All operations will happen under this root.\n//\n// Default to `/` if not set.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// The URL should be with a scheme of either `postgres://` or `postgresql://`.\n//\n// - `postgresql://user@localhost`\n// - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_timeout=1 [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"postgresql\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // Default to `/` if not set.\n    // {\"root\", \"...\"},\n\n    // The URL should be with a scheme of either `postgres://` or `postgresql://`.\n    //\n    // - `postgresql://user@localhost`\n    // - `postgresql://user:password@%2Fvar%2Flib%2Fpostgresql/mydb?connect_timeout=10`\n    // [...]
         }
       ]
     },
@@ -3333,26 +4271,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"redb\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"redb\", [\n    // path to the redb data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n\n    // The table name for redb.\n    // (\"table\".to_string(), \"...\".to_string()),\n\n    // The root for redb.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"redb\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"redb\", [\n    // path to the redb data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n\n    // The table name for redb.\n    // (\"table\".to_string(), \"...\".to_string()),\n\n    // The root for redb.\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"redb\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// path to the redb data directory.\n// config.put(\"datadir\", \"...\");\n\n// The table name for redb.\n// config.put(\"table\", \"...\");\n\n// The root for redb.\n// config.put(\"root\", \"...\");\nOperator operator = Operator.of(\"redb\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"redb\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"redb\",\n    # path to the redb data directory.\n    # datadir=\"...\",\n\n    # The table name for redb.\n    # table=\"...\",\n\n    # The root for redb.\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"redb\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"redb\",\n    # path to the redb data directory.\n    # datadir=\"...\",\n\n    # The table name for redb.\n    # table=\"...\",\n\n    # The root for redb.\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"redb\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"redb\", {\n  // path to the redb data directory.\n  // datadir: \"...\",\n\n  // The table name for redb.\n  // table: \"...\",\n\n  // The root for redb.\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"redb\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"redb\", {\n  // path to the redb data directory.\n  // datadir: \"...\",\n\n  // The table name for redb.\n  // table: \"...\",\n\n  // The root for redb.\n  // root: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"redb\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// path to the redb data directory.\n// conf.put(\"datadir\", \"...\");\n\n// The table name for redb.\n// conf.put(\"table\", \"...\");\n\n// The root for redb.\n// conf.put(\"root\", \"...\");\n\nOperator op = Operator.of(\"redb\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/redb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(redb.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/redb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(redb.Scheme, opendal.OperatorOptions{\n\t// path to the redb data directory.\n\t// \"datadir\": \"...\",\n\n\t// The table name for redb.\n\t// \"table\": \"...\",\n\n\t// The root for redb.\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"redb\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// path to the redb data directory.\n// opendal_operator_options_set(options, \"datadir\", \"...\");\n\n// The table name for redb.\n// opendal_operator_options_set(options, \"table\", \"...\");\n\n// The root for redb.\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"redb\", options);\nopendal_operator [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"redb\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // path to the redb data directory.\n    // {\"datadir\", \"...\"},\n\n    // The table name for redb.\n    // {\"table\", \"...\"},\n\n    // The root for redb.\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"redb\", config);"
         }
       ]
     },
@@ -3424,26 +4380,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"redis\", [\n    (\"db\".to_string(), \"1000\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"redis\", [\n    // network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n    //\n    // default is \"tcp://127.0.0.1:6379\"\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n    //\n    // default is None\n    // (\"cluster_endpoints\".to_string(), \ [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"redis\", [\n    (\"db\".to_string(), \"1000\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"redis\", [\n    // network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n    //\n    // default is \"tcp://127.0.0.1:6379\"\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n    //\n    // default is None\n    // (\"cluster_endpoints\".to_strin [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"db\", \"1000\");\nOperator operator = Operator.of(\"redis\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n//\n// default is \"tcp://127.0.0.1:6379\"\n// config.put(\"endpoint\", \"...\");\n\n// network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n//\n// default is None\n// config.put(\"cl [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"redis\",\n    db=\"1000\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"redis\",\n    # network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n    #\n    # default is \"tcp://127.0.0.1:6379\"\n    # endpoint=\"...\",\n\n    # network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n    #\n    # default is None\n    # cluster_endpoints=\"...\",\n\n    # The maximum number of connections allowed.\n    #\ [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"redis\",\n    db=\"1000\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"redis\",\n    # network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n    #\n    # default is \"tcp://127.0.0.1:6379\"\n    # endpoint=\"...\",\n\n    # network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n    #\n    # default is None\n    # cluster_endpoints=\"...\",\n\n    # The maximum number of connections allowed.\n [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"redis\", {\n  db: \"1000\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"redis\", {\n  // network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n  //\n  // default is \"tcp://127.0.0.1:6379\"\n  // endpoint: \"...\",\n\n  // network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n  //\n  // default is None\n  // cluster_endpoints: \"...\",\n\n  // The maximum number of connections al [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"redis\", {\n  db: \"1000\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"redis\", {\n  // network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n  //\n  // default is \"tcp://127.0.0.1:6379\"\n  // endpoint: \"...\",\n\n  // network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n  //\n  // default is None\n  // cluster_endpoints: \"...\",\n\n  // The maximum number of connecti [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"db\", \"1000\");\nOperator op = Operator.of(\"redis\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n//\n// default is \"tcp://127.0.0.1:6379\"\n// conf.put(\"endpoint\", \"...\");\n\n// network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n//\n// default is None\n// conf.put(\"cluster_ [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/redis\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(redis.Scheme, opendal.OperatorOptions{\n\t\"db\": \"1000\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/redis\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(redis.Scheme, opendal.OperatorOptions{\n\t// network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n\t//\n\t// default is \"tcp://127.0.0.1:6379\"\n\t// \"endpoint\": \"...\",\n\n\t// network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0. [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"db\", \"1000\");\nopendal_result_operator_new result = opendal_operator_new(\"redis\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n//\n// default is \"tcp://127.0.0.1:6379\"\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n//\n// default is None\n// opendal_operator_options_set( [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"db\", \"1000\"},\n};\nopendal::Operator operator(\"redis\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // network address of the Redis service. Can be \"tcp://127.0.0.1:6379\", e.g.\n    //\n    // default is \"tcp://127.0.0.1:6379\"\n    // {\"endpoint\", \"...\"},\n\n    // network address of the Redis cluster service. Can be \"tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381\", e.g.\n    //\n    // default is None\n    // {\"cluster_endpoints\", \"...\"},\n\n    // The [...]
         }
       ]
     },
@@ -3473,20 +4447,38 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"rocksdb\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"rocksdb\", [\n    // The path to the rocksdb data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n\n    // the working directory of the service. Can be \"/path/to/dir\"\n    //\n    // default is \"/\"\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"rocksdb\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"rocksdb\", [\n    // The path to the rocksdb data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n\n    // the working directory of the service. Can be \"/path/to/dir\"\n    //\n    // default is \"/\"\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"rocksdb\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"rocksdb\",\n    # The path to the rocksdb data directory.\n    # datadir=\"...\",\n\n    # the working directory of the service. Can be \"/path/to/dir\"\n    #\n    # default is \"/\"\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"rocksdb\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"rocksdb\",\n    # The path to the rocksdb data directory.\n    # datadir=\"...\",\n\n    # the working directory of the service. Can be \"/path/to/dir\"\n    #\n    # default is \"/\"\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"rocksdb\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"rocksdb\", {\n  // The path to the rocksdb data directory.\n  // datadir: \"...\",\n\n  // the working directory of the service. Can be \"/path/to/dir\"\n  //\n  // default is \"/\"\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"rocksdb\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"rocksdb\", {\n  // The path to the rocksdb data directory.\n  // datadir: \"...\",\n\n  // the working directory of the service. Can be \"/path/to/dir\"\n  //\n  // default is \"/\"\n  // root: \"...\",\n});"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/rocksdb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(rocksdb.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/rocksdb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(rocksdb.Scheme, opendal.OperatorOptions{\n\t// The path to the rocksdb data directory.\n\t// \"datadir\": \"...\",\n\n\t// the working directory of the service. Can be \"/path/to/dir\"\n\t//\n\t// default is \"/\"\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"rocksdb\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The path to the rocksdb data directory.\n// opendal_operator_options_set(options, \"datadir\", \"...\");\n\n// the working directory of the service. Can be \"/path/to/dir\"\n//\n// default is \"/\"\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"rocksdb\", options);\nopendal_operator *operator = res [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"rocksdb\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The path to the rocksdb data directory.\n    // {\"datadir\", \"...\"},\n\n    // the working directory of the service. Can be \"/path/to/dir\"\n    //\n    // default is \"/\"\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"rocksdb\", config);"
         }
       ]
     },
@@ -3770,26 +4762,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"s3\", [\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"s3\", [\n    // --- General ---\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // (\"root\".to_string(), \"/\".to_string()),\n\n    // bucket name of this backend.\n    //\n    // required.\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"s3\", [\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"s3\", [\n    // --- General ---\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // (\"root\".to_string(), \"/\".to_string()),\n\n    // bucket name of this backend.\n    //\n    // required.\n    (\"bucket\".to_string(), \"my-bucket\".to_string()),\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be ful [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"bucket\", \"my-bucket\");\nOperator operator = Operator.of(\"s3\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// --- General ---\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// config.put(\"root\", \"/\");\n\n// bucket name of this backend.\n//\n// required.\nconfig.put(\"bucket\", \"my-bucket\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, e.g.\n//\n// [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"s3\",\n    bucket=\"my-bucket\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"s3\",\n    # --- General ---\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # default to `/` if not set.\n    # root=\"/\",\n\n    # bucket name of this backend.\n    #\n    # required.\n    bucket=\"my-bucket\",\n\n    # endpoint of this backend.\n    #\n    # Endpoint must be full uri, e.g.\n    #\n    # - AWS S3: `https://s3.amazonaws.com` or `https://s3.{region}.amaz [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"s3\",\n    bucket=\"my-bucket\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"s3\",\n    # --- General ---\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # default to `/` if not set.\n    # root=\"/\",\n\n    # bucket name of this backend.\n    #\n    # required.\n    bucket=\"my-bucket\",\n\n    # endpoint of this backend.\n    #\n    # Endpoint must be full uri, e.g.\n    #\n    # - AWS S3: `https://s3.amazonaws.com` or `https://s3.{region [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"s3\", {\n  bucket: \"my-bucket\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"s3\", {\n  // --- General ---\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // default to `/` if not set.\n  // root: \"/\",\n\n  // bucket name of this backend.\n  //\n  // required.\n  bucket: \"my-bucket\",\n\n  // endpoint of this backend.\n  //\n  // Endpoint must be full uri, e.g.\n  //\n  // - AWS S3: `https://s3.amazonaws.com` or `https://s3.{region [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"s3\", {\n  bucket: \"my-bucket\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"s3\", {\n  // --- General ---\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // default to `/` if not set.\n  // root: \"/\",\n\n  // bucket name of this backend.\n  //\n  // required.\n  bucket: \"my-bucket\",\n\n  // endpoint of this backend.\n  //\n  // Endpoint must be full uri, e.g.\n  //\n  // - AWS S3: `https://s3.amazonaws.com` or `https://s3.{ [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"bucket\", \"my-bucket\");\nOperator op = Operator.of(\"s3\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// --- General ---\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// conf.put(\"root\", \"/\");\n\n// bucket name of this backend.\n//\n// required.\nconf.put(\"bucket\", \"my-bucket\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, e.g.\n//\n// - AWS [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"s3\", {\n  \"bucket\" => \"my-bucket\",\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"s3\", {\n  # --- General ---\n  # root of this backend.\n  #\n  # All operations will happen under this root.\n  #\n  # default to `/` if not set.\n  # \"root\" => \"/\",\n\n  # bucket name of this backend.\n  #\n  # required.\n  \"bucket\" => \"my-bucket\",\n\n  # endpoint of this backend.\n  #\n  # Endpoint must be full uri, e.g.\n  #\n  # - AWS S3: `https://s3.amazonaws.com` or `https://s3.{region}.amazonaws. [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/s3\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(s3.Scheme, opendal.OperatorOptions{\n\t\"bucket\": \"my-bucket\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/s3\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(s3.Scheme, opendal.OperatorOptions{\n\t// --- General ---\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t//\n\t// default to `/` if not set.\n\t// \"root\": \"/\",\n\n\t// bucket name of this backend.\n\t//\n\t// required.\n\t\"bucket\": \"my-bucket\",\n\n\t// endpoint of this ba [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"bucket\", \"my-bucket\");\nopendal_result_operator_new result = opendal_operator_new(\"s3\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// --- General ---\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// opendal_operator_options_set(options, \"root\", \"/\");\n\n// bucket name of this backend.\n//\n// required.\nopendal_operator_options_set(options, \"bucket\", \"my-bucket\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"bucket\", \"my-bucket\"},\n};\nopendal::Operator operator(\"s3\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // --- General ---\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // {\"root\", \"/\"},\n\n    // bucket name of this backend.\n    //\n    // required.\n    {\"bucket\", \"my-bucket\"},\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, e.g.\n    //\n    // - AWS S3: [...]
         }
       ]
     },
@@ -3840,26 +4856,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"seafile\", [\n    (\"repo_name\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"seafile\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // endpoint address of this backend.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // username of this backend.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // password of this backend.\n    // (\"password\".to_string [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"seafile\", [\n    (\"repo_name\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"seafile\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // endpoint address of this backend.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // username of this backend.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // password of this backend.\n    // (\"password\".to_ [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"repo_name\", \"...\");\nOperator operator = Operator.of(\"seafile\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// config.put(\"root\", \"...\");\n\n// endpoint address of this backend.\n// config.put(\"endpoint\", \"...\");\n\n// username of this backend.\n// config.put(\"username\", \"...\");\n\n// password of this backend.\n// config.put(\"password\", \"...\");\n\n/ [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"seafile\",\n    repo_name=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"seafile\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # endpoint address of this backend.\n    # endpoint=\"...\",\n\n    # username of this backend.\n    # username=\"...\",\n\n    # password of this backend.\n    # password=\"...\",\n\n    # repo_name of this backend.\n    #\n    # required.\n    repo_name=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"seafile\",\n    repo_name=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"seafile\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # endpoint address of this backend.\n    # endpoint=\"...\",\n\n    # username of this backend.\n    # username=\"...\",\n\n    # password of this backend.\n    # password=\"...\",\n\n    # repo_name of this backend.\n    #\n    # required.\n    repo_name=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"seafile\", {\n  repo_name: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"seafile\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // endpoint address of this backend.\n  // endpoint: \"...\",\n\n  // username of this backend.\n  // username: \"...\",\n\n  // password of this backend.\n  // password: \"...\",\n\n  // repo_name of this backend.\n  //\n  // required.\n  repo_name: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"seafile\", {\n  repo_name: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"seafile\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // endpoint address of this backend.\n  // endpoint: \"...\",\n\n  // username of this backend.\n  // username: \"...\",\n\n  // password of this backend.\n  // password: \"...\",\n\n  // repo_name of this backend.\n  //\n  // required.\n  repo_name: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"repo_name\", \"...\");\nOperator op = Operator.of(\"seafile\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// conf.put(\"root\", \"...\");\n\n// endpoint address of this backend.\n// conf.put(\"endpoint\", \"...\");\n\n// username of this backend.\n// conf.put(\"username\", \"...\");\n\n// password of this backend.\n// conf.put(\"password\", \"...\");\n\n// repo_nam [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/seafile\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(seafile.Scheme, opendal.OperatorOptions{\n\t\"repo_name\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/seafile\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(seafile.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// endpoint address of this backend.\n\t// \"endpoint\": \"...\",\n\n\t// username of this backend.\n\t// \"username\": \"...\",\n\n\t// password of this backen [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"repo_name\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"seafile\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// endpoint address of this backend.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// username of this backend.\n// opendal_operator_options_set(options, \"username\", \"...\");\n\n// password of this backend.\n// [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"repo_name\", \"...\"},\n};\nopendal::Operator operator(\"seafile\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // endpoint address of this backend.\n    // {\"endpoint\", \"...\"},\n\n    // username of this backend.\n    // {\"username\", \"...\"},\n\n    // password of this backend.\n    // {\"password\", \"...\"},\n\n    // repo_name of this backend.\n    //\n    // requi [...]
         }
       ]
     },
@@ -3921,26 +4955,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"sftp\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"sftp\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // user of this backend\n    // (\"user\".to_string(), \"...\".to_string()),\n\n    // key of this backend\n    // (\"key\".to_string(), \"...\".to_string()),\n\n    // known_hosts_strategy of this backend\n    // (\"known_hos [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"sftp\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"sftp\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // user of this backend\n    // (\"user\".to_string(), \"...\".to_string()),\n\n    // key of this backend\n    // (\"key\".to_string(), \"...\".to_string()),\n\n    // known_hosts_strategy of this backend\n    // (\"kno [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"sftp\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// endpoint of this backend\n// config.put(\"endpoint\", \"...\");\n\n// root of this backend\n// config.put(\"root\", \"...\");\n\n// user of this backend\n// config.put(\"user\", \"...\");\n\n// key of this backend\n// config.put(\"key\", \"...\");\n\n// known_hosts_strategy of this backend\n// config.put(\"known_hosts_strategy\", \" [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"sftp\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"sftp\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # user of this backend\n    # user=\"...\",\n\n    # key of this backend\n    # key=\"...\",\n\n    # known_hosts_strategy of this backend\n    # known_hosts_strategy=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"sftp\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"sftp\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # user of this backend\n    # user=\"...\",\n\n    # key of this backend\n    # key=\"...\",\n\n    # known_hosts_strategy of this backend\n    # known_hosts_strategy=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"sftp\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"sftp\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // user of this backend\n  // user: \"...\",\n\n  // key of this backend\n  // key: \"...\",\n\n  // known_hosts_strategy of this backend\n  // known_hosts_strategy: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"sftp\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"sftp\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // user of this backend\n  // user: \"...\",\n\n  // key of this backend\n  // key: \"...\",\n\n  // known_hosts_strategy of this backend\n  // known_hosts_strategy: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"sftp\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// endpoint of this backend\n// conf.put(\"endpoint\", \"...\");\n\n// root of this backend\n// conf.put(\"root\", \"...\");\n\n// user of this backend\n// conf.put(\"user\", \"...\");\n\n// key of this backend\n// conf.put(\"key\", \"...\");\n\n// known_hosts_strategy of this backend\n// conf.put(\"known_hosts_strategy\", \"...\");\n\nO [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/sftp\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(sftp.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/sftp\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(sftp.Scheme, opendal.OperatorOptions{\n\t// endpoint of this backend\n\t// \"endpoint\": \"...\",\n\n\t// root of this backend\n\t// \"root\": \"...\",\n\n\t// user of this backend\n\t// \"user\": \"...\",\n\n\t// key of this backend\n\t// \"key\": \"...\",\n\n\t// known_hosts_strategy of this backend\n\t// \"known_h [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"sftp\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// endpoint of this backend\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// root of this backend\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// user of this backend\n// opendal_operator_options_set(options, \"user\", \"...\");\n\n// key of this backend\n// opendal_operator_options_set(options, \"key\", \"...\");\n\n// known_hosts_s [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"sftp\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // endpoint of this backend\n    // {\"endpoint\", \"...\"},\n\n    // root of this backend\n    // {\"root\", \"...\"},\n\n    // user of this backend\n    // {\"user\", \"...\"},\n\n    // key of this backend\n    // {\"key\", \"...\"},\n\n    // known_hosts_strategy of this backend\n    // {\"known_hosts_strategy\", \"...\"},\n};\nopendal::Operator operator(\"sftp\", config);"
         }
       ]
     },
@@ -3977,26 +5029,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"sled\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"sled\", [\n    // That path to the sled data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n\n    // The tree for sled.\n    // (\"tree\".to_string(), \"...\".to_string()),\n\n    // The root for sled.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"sled\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"sled\", [\n    // That path to the sled data directory.\n    // (\"datadir\".to_string(), \"...\".to_string()),\n\n    // The tree for sled.\n    // (\"tree\".to_string(), \"...\".to_string()),\n\n    // The root for sled.\n    // (\"root\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"sled\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// That path to the sled data directory.\n// config.put(\"datadir\", \"...\");\n\n// The tree for sled.\n// config.put(\"tree\", \"...\");\n\n// The root for sled.\n// config.put(\"root\", \"...\");\nOperator operator = Operator.of(\"sled\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"sled\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"sled\",\n    # That path to the sled data directory.\n    # datadir=\"...\",\n\n    # The tree for sled.\n    # tree=\"...\",\n\n    # The root for sled.\n    # root=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"sled\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"sled\",\n    # That path to the sled data directory.\n    # datadir=\"...\",\n\n    # The tree for sled.\n    # tree=\"...\",\n\n    # The root for sled.\n    # root=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"sled\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"sled\", {\n  // That path to the sled data directory.\n  // datadir: \"...\",\n\n  // The tree for sled.\n  // tree: \"...\",\n\n  // The root for sled.\n  // root: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"sled\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"sled\", {\n  // That path to the sled data directory.\n  // datadir: \"...\",\n\n  // The tree for sled.\n  // tree: \"...\",\n\n  // The root for sled.\n  // root: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"sled\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// That path to the sled data directory.\n// conf.put(\"datadir\", \"...\");\n\n// The tree for sled.\n// conf.put(\"tree\", \"...\");\n\n// The root for sled.\n// conf.put(\"root\", \"...\");\n\nOperator op = Operator.of(\"sled\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/sled\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(sled.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/sled\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(sled.Scheme, opendal.OperatorOptions{\n\t// That path to the sled data directory.\n\t// \"datadir\": \"...\",\n\n\t// The tree for sled.\n\t// \"tree\": \"...\",\n\n\t// The root for sled.\n\t// \"root\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"sled\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// That path to the sled data directory.\n// opendal_operator_options_set(options, \"datadir\", \"...\");\n\n// The tree for sled.\n// opendal_operator_options_set(options, \"tree\", \"...\");\n\n// The root for sled.\n// opendal_operator_options_set(options, \"root\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"sled\", options);\nopendal_operator * [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"sled\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // That path to the sled data directory.\n    // {\"datadir\", \"...\"},\n\n    // The tree for sled.\n    // {\"tree\", \"...\"},\n\n    // The root for sled.\n    // {\"root\", \"...\"},\n};\nopendal::Operator operator(\"sled\", config);"
         }
       ]
     },
@@ -4047,26 +5117,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"sqlite\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"sqlite\", [\n    // Set the connection_string of the sqlite service.\n    //\n    // This connection string is used to connect to the sqlite service.\n    //\n    // The format of connect string resembles the url format of the sqlite client:\n    //\n    // - `sqlite::memory:`\n    // - `sqlite:data.db`\n    // - `sqlite://data.db`\n    //\n    // For more information, please visit <https://docs.rs/sqlx/latest/sql [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"sqlite\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"sqlite\", [\n    // Set the connection_string of the sqlite service.\n    //\n    // This connection string is used to connect to the sqlite service.\n    //\n    // The format of connect string resembles the url format of the sqlite client:\n    //\n    // - `sqlite::memory:`\n    // - `sqlite:data.db`\n    // - `sqlite://data.db`\n    //\n    // For more information, please visit <https://docs.rs/sqlx/late [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"sqlite\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Set the connection_string of the sqlite service.\n//\n// This connection string is used to connect to the sqlite service.\n//\n// The format of connect string resembles the url format of the sqlite client:\n//\n// - `sqlite::memory:`\n// - `sqlite:data.db`\n// - `sqlite://data.db`\n//\n// For more information, please visit <https:// [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"sqlite\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"sqlite\",\n    # Set the connection_string of the sqlite service.\n    #\n    # This connection string is used to connect to the sqlite service.\n    #\n    # The format of connect string resembles the url format of the sqlite client:\n    #\n    # - `sqlite::memory:`\n    # - `sqlite:data.db`\n    # - `sqlite://data.db`\n    #\n    # For more information, please visit <https://docs.rs/sqlx/latest/sqlx/sqlite/struct.Sqlit [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"sqlite\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"sqlite\",\n    # Set the connection_string of the sqlite service.\n    #\n    # This connection string is used to connect to the sqlite service.\n    #\n    # The format of connect string resembles the url format of the sqlite client:\n    #\n    # - `sqlite::memory:`\n    # - `sqlite:data.db`\n    # - `sqlite://data.db`\n    #\n    # For more information, please visit <https://docs.rs/sqlx/latest/sqlx/sqlite/struct [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"sqlite\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"sqlite\", {\n  // Set the connection_string of the sqlite service.\n  //\n  // This connection string is used to connect to the sqlite service.\n  //\n  // The format of connect string resembles the url format of the sqlite client:\n  //\n  // - `sqlite::memory:`\n  // - `sqlite:data.db`\n  // - `sqlite://data.db`\n  //\n  // For more information, please visit <https://docs.rs/sqlx/latest/sqlx/sqlite/st [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"sqlite\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"sqlite\", {\n  // Set the connection_string of the sqlite service.\n  //\n  // This connection string is used to connect to the sqlite service.\n  //\n  // The format of connect string resembles the url format of the sqlite client:\n  //\n  // - `sqlite::memory:`\n  // - `sqlite:data.db`\n  // - `sqlite://data.db`\n  //\n  // For more information, please visit <https://docs.rs/sqlx/latest/sqlx/sql [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"sqlite\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Set the connection_string of the sqlite service.\n//\n// This connection string is used to connect to the sqlite service.\n//\n// The format of connect string resembles the url format of the sqlite client:\n//\n// - `sqlite::memory:`\n// - `sqlite:data.db`\n// - `sqlite://data.db`\n//\n// For more information, please visit <https://do [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/sqlite\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(sqlite.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/sqlite\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(sqlite.Scheme, opendal.OperatorOptions{\n\t// Set the connection_string of the sqlite service.\n\t//\n\t// This connection string is used to connect to the sqlite service.\n\t//\n\t// The format of connect string resembles the url format of the sqlite client:\n\t//\n\t// - `sqlite::memory:`\n\t// - `sqlite:data.db` [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"sqlite\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Set the connection_string of the sqlite service.\n//\n// This connection string is used to connect to the sqlite service.\n//\n// The format of connect string resembles the url format of the sqlite client:\n//\n// - `sqlite::memory:`\n// - `sqlite:data.db`\n// - `sqlite://data.db`\n//\n// For more information, please visit <https://docs.rs/sqlx/latest/sqlx/sqlite/struct.Sq [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"sqlite\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Set the connection_string of the sqlite service.\n    //\n    // This connection string is used to connect to the sqlite service.\n    //\n    // The format of connect string resembles the url format of the sqlite client:\n    //\n    // - `sqlite::memory:`\n    // - `sqlite:data.db`\n    // - `sqlite://data.db`\n    //\n    // For more information, please visit <https://docs.rs/sq [...]
         }
       ]
     },
@@ -4145,14 +5233,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"surrealdb\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"surrealdb\", [\n    // The connection string for surrealdb.\n    // (\"connection_string\".to_string(), \"...\".to_string()),\n\n    // The username for surrealdb.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // The password for surrealdb.\n    // (\"password\".to_string(), \"...\".to_string()),\n\n    // The namespace for surrealdb.\n    // (\"namespace\".to_string(), \"...\".to_string()),\n\n  [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"surrealdb\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"surrealdb\", [\n    // The connection string for surrealdb.\n    // (\"connection_string\".to_string(), \"...\".to_string()),\n\n    // The username for surrealdb.\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // The password for surrealdb.\n    // (\"password\".to_string(), \"...\".to_string()),\n\n    // The namespace for surrealdb.\n    // (\"namespace\".to_string(), \"...\".to_string()) [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"surrealdb\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"surrealdb\",\n    # The connection string for surrealdb.\n    # connection_string=\"...\",\n\n    # The username for surrealdb.\n    # username=\"...\",\n\n    # The password for surrealdb.\n    # password=\"...\",\n\n    # The namespace for surrealdb.\n    # namespace=\"...\",\n\n    # The database for surrealdb.\n    # database=\"...\",\n\n    # The table for surrealdb.\n    # table=\"...\",\n\n    # The key field for s [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"surrealdb\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"surrealdb\",\n    # The connection string for surrealdb.\n    # connection_string=\"...\",\n\n    # The username for surrealdb.\n    # username=\"...\",\n\n    # The password for surrealdb.\n    # password=\"...\",\n\n    # The namespace for surrealdb.\n    # namespace=\"...\",\n\n    # The database for surrealdb.\n    # database=\"...\",\n\n    # The table for surrealdb.\n    # table=\"...\",\n\n    # The key field [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/surrealdb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(surrealdb.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/surrealdb\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(surrealdb.Scheme, opendal.OperatorOptions{\n\t// The connection string for surrealdb.\n\t// \"connection_string\": \"...\",\n\n\t// The username for surrealdb.\n\t// \"username\": \"...\",\n\n\t// The password for surrealdb.\n\t// \"password\": \"...\",\n\n\t// The namespace for surrealdb.\n\t// \"namespace\": \ [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"surrealdb\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The connection string for surrealdb.\n// opendal_operator_options_set(options, \"connection_string\", \"...\");\n\n// The username for surrealdb.\n// opendal_operator_options_set(options, \"username\", \"...\");\n\n// The password for surrealdb.\n// opendal_operator_options_set(options, \"password\", \"...\");\n\n// The namespace for surrealdb.\n// opendal_operator_options [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"surrealdb\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The connection string for surrealdb.\n    // {\"connection_string\", \"...\"},\n\n    // The username for surrealdb.\n    // {\"username\", \"...\"},\n\n    // The password for surrealdb.\n    // {\"password\", \"...\"},\n\n    // The namespace for surrealdb.\n    // {\"namespace\", \"...\"},\n\n    // The database for surrealdb.\n    // {\"database\", \"...\"},\n\n    // The table [...]
         }
       ]
     },
@@ -4210,26 +5316,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"swift\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"swift\", [\n    // The endpoint for Swift.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The container for Swift.\n    // (\"container\".to_string(), \"...\".to_string()),\n\n    // The root for Swift.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The token for Swift.\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // The TempURL key for generating presigned URLs. [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"swift\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"swift\", [\n    // The endpoint for Swift.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The container for Swift.\n    // (\"container\".to_string(), \"...\".to_string()),\n\n    // The root for Swift.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // The token for Swift.\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // The TempURL key for generating presigned [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"swift\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The endpoint for Swift.\n// config.put(\"endpoint\", \"...\");\n\n// The container for Swift.\n// config.put(\"container\", \"...\");\n\n// The root for Swift.\n// config.put(\"root\", \"...\");\n\n// The token for Swift.\n// config.put(\"token\", \"...\");\n\n// The TempURL key for generating presigned URLs.\n//\n// This correspond [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"swift\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"swift\",\n    # The endpoint for Swift.\n    # endpoint=\"...\",\n\n    # The container for Swift.\n    # container=\"...\",\n\n    # The root for Swift.\n    # root=\"...\",\n\n    # The token for Swift.\n    # token=\"...\",\n\n    # The TempURL key for generating presigned URLs.\n    #\n    # This corresponds to the `X-Account-Meta-Temp-URL-Key` or\n    # `X-Container-Meta-Temp-URL-Key` header value configured on the\n [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"swift\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"swift\",\n    # The endpoint for Swift.\n    # endpoint=\"...\",\n\n    # The container for Swift.\n    # container=\"...\",\n\n    # The root for Swift.\n    # root=\"...\",\n\n    # The token for Swift.\n    # token=\"...\",\n\n    # The TempURL key for generating presigned URLs.\n    #\n    # This corresponds to the `X-Account-Meta-Temp-URL-Key` or\n    # `X-Container-Meta-Temp-URL-Key` header value configured on [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"swift\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"swift\", {\n  // The endpoint for Swift.\n  // endpoint: \"...\",\n\n  // The container for Swift.\n  // container: \"...\",\n\n  // The root for Swift.\n  // root: \"...\",\n\n  // The token for Swift.\n  // token: \"...\",\n\n  // The TempURL key for generating presigned URLs.\n  //\n  // This corresponds to the `X-Account-Meta-Temp-URL-Key` or\n  // `X-Container-Meta-Temp-URL-Key` header value config [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"swift\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"swift\", {\n  // The endpoint for Swift.\n  // endpoint: \"...\",\n\n  // The container for Swift.\n  // container: \"...\",\n\n  // The root for Swift.\n  // root: \"...\",\n\n  // The token for Swift.\n  // token: \"...\",\n\n  // The TempURL key for generating presigned URLs.\n  //\n  // This corresponds to the `X-Account-Meta-Temp-URL-Key` or\n  // `X-Container-Meta-Temp-URL-Key` header value  [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"swift\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The endpoint for Swift.\n// conf.put(\"endpoint\", \"...\");\n\n// The container for Swift.\n// conf.put(\"container\", \"...\");\n\n// The root for Swift.\n// conf.put(\"root\", \"...\");\n\n// The token for Swift.\n// conf.put(\"token\", \"...\");\n\n// The TempURL key for generating presigned URLs.\n//\n// This corresponds to the ` [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/swift\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(swift.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/swift\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(swift.Scheme, opendal.OperatorOptions{\n\t// The endpoint for Swift.\n\t// \"endpoint\": \"...\",\n\n\t// The container for Swift.\n\t// \"container\": \"...\",\n\n\t// The root for Swift.\n\t// \"root\": \"...\",\n\n\t// The token for Swift.\n\t// \"token\": \"...\",\n\n\t// The TempURL key for generating presigned [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"swift\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The endpoint for Swift.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// The container for Swift.\n// opendal_operator_options_set(options, \"container\", \"...\");\n\n// The root for Swift.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// The token for Swift.\n// opendal_operator_options_set(options, \"token\", \"...\");\n\n// The [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"swift\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The endpoint for Swift.\n    // {\"endpoint\", \"...\"},\n\n    // The container for Swift.\n    // {\"container\", \"...\"},\n\n    // The root for Swift.\n    // {\"root\", \"...\"},\n\n    // The token for Swift.\n    // {\"token\", \"...\"},\n\n    // The TempURL key for generating presigned URLs.\n    //\n    // This corresponds to the `X-Account-Meta-Temp-URL-Key` or\n    //  [...]
         }
       ]
     },
@@ -4280,26 +5404,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"tikv\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"tikv\", [\n    // network address of the TiKV service.\n    // (\"endpoints\".to_string(), \"value1,value2\".to_string()),\n\n    // whether using insecure connection to TiKV\n    // (\"insecure\".to_string(), \"true\".to_string()),\n\n    // certificate authority file path\n    // (\"ca_path\".to_string(), \"...\".to_string()),\n\n    // cert path\n    // (\"cert_path\".to_string(), \"...\".to_string()),\n\n    / [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"tikv\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"tikv\", [\n    // network address of the TiKV service.\n    // (\"endpoints\".to_string(), \"value1,value2\".to_string()),\n\n    // whether using insecure connection to TiKV\n    // (\"insecure\".to_string(), \"true\".to_string()),\n\n    // certificate authority file path\n    // (\"ca_path\".to_string(), \"...\".to_string()),\n\n    // cert path\n    // (\"cert_path\".to_string(), \"...\".to_string()),\n\ [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"tikv\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// network address of the TiKV service.\n// config.put(\"endpoints\", \"value1,value2\");\n\n// whether using insecure connection to TiKV\n// config.put(\"insecure\", \"true\");\n\n// certificate authority file path\n// config.put(\"ca_path\", \"...\");\n\n// cert path\n// config.put(\"cert_path\", \"...\");\n\n// key path\n// config.p [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"tikv\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"tikv\",\n    # network address of the TiKV service.\n    # endpoints=\"value1,value2\",\n\n    # whether using insecure connection to TiKV\n    # insecure=\"true\",\n\n    # certificate authority file path\n    # ca_path=\"...\",\n\n    # cert path\n    # cert_path=\"...\",\n\n    # key path\n    # key_path=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"tikv\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"tikv\",\n    # network address of the TiKV service.\n    # endpoints=\"value1,value2\",\n\n    # whether using insecure connection to TiKV\n    # insecure=\"true\",\n\n    # certificate authority file path\n    # ca_path=\"...\",\n\n    # cert path\n    # cert_path=\"...\",\n\n    # key path\n    # key_path=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"tikv\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"tikv\", {\n  // network address of the TiKV service.\n  // endpoints: \"value1,value2\",\n\n  // whether using insecure connection to TiKV\n  // insecure: \"true\",\n\n  // certificate authority file path\n  // ca_path: \"...\",\n\n  // cert path\n  // cert_path: \"...\",\n\n  // key path\n  // key_path: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"tikv\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"tikv\", {\n  // network address of the TiKV service.\n  // endpoints: \"value1,value2\",\n\n  // whether using insecure connection to TiKV\n  // insecure: \"true\",\n\n  // certificate authority file path\n  // ca_path: \"...\",\n\n  // cert path\n  // cert_path: \"...\",\n\n  // key path\n  // key_path: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"tikv\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// network address of the TiKV service.\n// conf.put(\"endpoints\", \"value1,value2\");\n\n// whether using insecure connection to TiKV\n// conf.put(\"insecure\", \"true\");\n\n// certificate authority file path\n// conf.put(\"ca_path\", \"...\");\n\n// cert path\n// conf.put(\"cert_path\", \"...\");\n\n// key path\n// conf.put(\"key_pat [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/tikv\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(tikv.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/tikv\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(tikv.Scheme, opendal.OperatorOptions{\n\t// network address of the TiKV service.\n\t// \"endpoints\": \"value1,value2\",\n\n\t// whether using insecure connection to TiKV\n\t// \"insecure\": \"true\",\n\n\t// certificate authority file path\n\t// \"ca_path\": \"...\",\n\n\t// cert path\n\t// \"cert_path\": \"...\",\n [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"tikv\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// network address of the TiKV service.\n// opendal_operator_options_set(options, \"endpoints\", \"value1,value2\");\n\n// whether using insecure connection to TiKV\n// opendal_operator_options_set(options, \"insecure\", \"true\");\n\n// certificate authority file path\n// opendal_operator_options_set(options, \"ca_path\", \"...\");\n\n// cert path\n// opendal_operator_option [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"tikv\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // network address of the TiKV service.\n    // {\"endpoints\", \"value1,value2\"},\n\n    // whether using insecure connection to TiKV\n    // {\"insecure\", \"true\"},\n\n    // certificate authority file path\n    // {\"ca_path\", \"...\"},\n\n    // cert path\n    // {\"cert_path\", \"...\"},\n\n    // key path\n    // {\"key_path\", \"...\"},\n};\nopendal::Operator operator(\"tik [...]
         }
       ]
     },
@@ -4378,26 +5520,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"tos\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"tos\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // bucket name of this backend.\n    //\n    // required.\n    (\"bucket\".to_string(), \"...\".to_string()),\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, e.g.\n    // - TOS: `https [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"tos\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"tos\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // bucket name of this backend.\n    //\n    // required.\n    (\"bucket\".to_string(), \"...\".to_string()),\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, e.g.\n    // - TOS:  [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"bucket\", \"...\");\nOperator operator = Operator.of(\"tos\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// config.put(\"root\", \"...\");\n\n// bucket name of this backend.\n//\n// required.\nconfig.put(\"bucket\", \"...\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, e.g.\n// - TOS: `https://tos-cn-beij [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"tos\",\n    bucket=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"tos\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # default to `/` if not set.\n    # root=\"...\",\n\n    # bucket name of this backend.\n    #\n    # required.\n    bucket=\"...\",\n\n    # endpoint of this backend.\n    #\n    # Endpoint must be full uri, e.g.\n    # - TOS: `https://tos-cn-beijing.volces.com`\n    # - TOS with region: `https://tos-{region}.volces. [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"tos\",\n    bucket=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"tos\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    #\n    # default to `/` if not set.\n    # root=\"...\",\n\n    # bucket name of this backend.\n    #\n    # required.\n    bucket=\"...\",\n\n    # endpoint of this backend.\n    #\n    # Endpoint must be full uri, e.g.\n    # - TOS: `https://tos-cn-beijing.volces.com`\n    # - TOS with region: `https://tos-{region}.v [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"tos\", {\n  bucket: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"tos\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // default to `/` if not set.\n  // root: \"...\",\n\n  // bucket name of this backend.\n  //\n  // required.\n  bucket: \"...\",\n\n  // endpoint of this backend.\n  //\n  // Endpoint must be full uri, e.g.\n  // - TOS: `https://tos-cn-beijing.volces.com`\n  // - TOS with region: `https://tos-{region}. [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"tos\", {\n  bucket: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"tos\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  //\n  // default to `/` if not set.\n  // root: \"...\",\n\n  // bucket name of this backend.\n  //\n  // required.\n  bucket: \"...\",\n\n  // endpoint of this backend.\n  //\n  // Endpoint must be full uri, e.g.\n  // - TOS: `https://tos-cn-beijing.volces.com`\n  // - TOS with region: `https://tos-{re [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"bucket\", \"...\");\nOperator op = Operator.of(\"tos\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// conf.put(\"root\", \"...\");\n\n// bucket name of this backend.\n//\n// required.\nconf.put(\"bucket\", \"...\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, e.g.\n// - TOS: `https://tos-cn-beijing.vo [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/tos\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(tos.Scheme, opendal.OperatorOptions{\n\t\"bucket\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/tos\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(tos.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t//\n\t// default to `/` if not set.\n\t// \"root\": \"...\",\n\n\t// bucket name of this backend.\n\t//\n\t// required.\n\t\"bucket\": \"...\",\n\n\t// endpoint of this backend.\n\t//\n\t// Endpo [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"bucket\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"tos\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n//\n// default to `/` if not set.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// bucket name of this backend.\n//\n// required.\nopendal_operator_options_set(options, \"bucket\", \"...\");\n\n// endpoint of this backend.\n//\n// Endpoint must be full uri, e.g.\n// - TOS: `https: [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"bucket\", \"...\"},\n};\nopendal::Operator operator(\"tos\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    //\n    // default to `/` if not set.\n    // {\"root\", \"...\"},\n\n    // bucket name of this backend.\n    //\n    // required.\n    {\"bucket\", \"...\"},\n\n    // endpoint of this backend.\n    //\n    // Endpoint must be full uri, e.g.\n    // - TOS: `https://tos-cn-beijing.volces.com`\n  [...]
         }
       ]
     },
@@ -4441,26 +5601,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"upyun\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"upyun\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // bucket address of this backend.\n    (\"bucket\".to_string(), \"...\".to_string()),\n\n    // username of this backend.\n    // (\"operator\".to_string(), \"...\".to_string()),\n\n    // password of this backend.\n    // (\"password\".to_string(), \"... [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"upyun\", [\n    (\"bucket\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"upyun\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // bucket address of this backend.\n    (\"bucket\".to_string(), \"...\".to_string()),\n\n    // username of this backend.\n    // (\"operator\".to_string(), \"...\".to_string()),\n\n    // password of this backend.\n    // (\"password\".to_string(), [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"bucket\", \"...\");\nOperator operator = Operator.of(\"upyun\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// config.put(\"root\", \"...\");\n\n// bucket address of this backend.\nconfig.put(\"bucket\", \"...\");\n\n// username of this backend.\n// config.put(\"operator\", \"...\");\n\n// password of this backend.\n// config.put(\"password\", \"...\");\nOperator o [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"upyun\",\n    bucket=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"upyun\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # bucket address of this backend.\n    bucket=\"...\",\n\n    # username of this backend.\n    # operator=\"...\",\n\n    # password of this backend.\n    # password=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"upyun\",\n    bucket=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"upyun\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # bucket address of this backend.\n    bucket=\"...\",\n\n    # username of this backend.\n    # operator=\"...\",\n\n    # password of this backend.\n    # password=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"upyun\", {\n  bucket: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"upyun\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // bucket address of this backend.\n  bucket: \"...\",\n\n  // username of this backend.\n  // operator: \"...\",\n\n  // password of this backend.\n  // password: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"upyun\", {\n  bucket: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"upyun\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // bucket address of this backend.\n  bucket: \"...\",\n\n  // username of this backend.\n  // operator: \"...\",\n\n  // password of this backend.\n  // password: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"bucket\", \"...\");\nOperator op = Operator.of(\"upyun\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// conf.put(\"root\", \"...\");\n\n// bucket address of this backend.\nconf.put(\"bucket\", \"...\");\n\n// username of this backend.\n// conf.put(\"operator\", \"...\");\n\n// password of this backend.\n// conf.put(\"password\", \"...\");\n\nOperator op = Oper [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/upyun\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(upyun.Scheme, opendal.OperatorOptions{\n\t\"bucket\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/upyun\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(upyun.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// bucket address of this backend.\n\t\"bucket\": \"...\",\n\n\t// username of this backend.\n\t// \"operator\": \"...\",\n\n\t// password of this backend.\n\t// \" [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"bucket\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"upyun\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// bucket address of this backend.\nopendal_operator_options_set(options, \"bucket\", \"...\");\n\n// username of this backend.\n// opendal_operator_options_set(options, \"operator\", \"...\");\n\n// password of this backend.\n// openda [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"bucket\", \"...\"},\n};\nopendal::Operator operator(\"upyun\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // bucket address of this backend.\n    {\"bucket\", \"...\"},\n\n    // username of this backend.\n    // {\"operator\", \"...\"},\n\n    // password of this backend.\n    // {\"password\", \"...\"},\n};\nopendal::Operator operator(\"upyun\", config);"
         }
       ]
     },
@@ -4504,26 +5682,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"vercel-artifacts\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"vercel-artifacts\", [\n    // The access token for Vercel.\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // The endpoint for the Vercel artifacts API.\n    //\n    // Defaults to `https://api.vercel.com`.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The Vercel team ID. When set, the `teamId` query parameter\n    // is appended to all API requests.\n    // (\"team_id\".to [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"vercel-artifacts\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"vercel-artifacts\", [\n    // The access token for Vercel.\n    // (\"access_token\".to_string(), \"...\".to_string()),\n\n    // The endpoint for the Vercel artifacts API.\n    //\n    // Defaults to `https://api.vercel.com`.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // The Vercel team ID. When set, the `teamId` query parameter\n    // is appended to all API requests.\n    // (\"team_i [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"vercel-artifacts\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// The access token for Vercel.\n// config.put(\"access_token\", \"...\");\n\n// The endpoint for the Vercel artifacts API.\n//\n// Defaults to `https://api.vercel.com`.\n// config.put(\"endpoint\", \"...\");\n\n// The Vercel team ID. When set, the `teamId` query parameter\n// is appended to all API requests.\n// config.put(\"team_id\" [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"vercel-artifacts\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"vercel-artifacts\",\n    # The access token for Vercel.\n    # access_token=\"...\",\n\n    # The endpoint for the Vercel artifacts API.\n    #\n    # Defaults to `https://api.vercel.com`.\n    # endpoint=\"...\",\n\n    # The Vercel team ID. When set, the `teamId` query parameter\n    # is appended to all API requests.\n    # team_id=\"...\",\n\n    # The Vercel team slug. When set, the `slug` query parameter\n    # is a [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"vercel-artifacts\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"vercel-artifacts\",\n    # The access token for Vercel.\n    # access_token=\"...\",\n\n    # The endpoint for the Vercel artifacts API.\n    #\n    # Defaults to `https://api.vercel.com`.\n    # endpoint=\"...\",\n\n    # The Vercel team ID. When set, the `teamId` query parameter\n    # is appended to all API requests.\n    # team_id=\"...\",\n\n    # The Vercel team slug. When set, the `slug` query parameter\n     [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"vercel-artifacts\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"vercel-artifacts\", {\n  // The access token for Vercel.\n  // access_token: \"...\",\n\n  // The endpoint for the Vercel artifacts API.\n  //\n  // Defaults to `https://api.vercel.com`.\n  // endpoint: \"...\",\n\n  // The Vercel team ID. When set, the `teamId` query parameter\n  // is appended to all API requests.\n  // team_id: \"...\",\n\n  // The Vercel team slug. When set, the `slug` query paramet [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"vercel-artifacts\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"vercel-artifacts\", {\n  // The access token for Vercel.\n  // access_token: \"...\",\n\n  // The endpoint for the Vercel artifacts API.\n  //\n  // Defaults to `https://api.vercel.com`.\n  // endpoint: \"...\",\n\n  // The Vercel team ID. When set, the `teamId` query parameter\n  // is appended to all API requests.\n  // team_id: \"...\",\n\n  // The Vercel team slug. When set, the `slug` query p [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"vercel-artifacts\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// The access token for Vercel.\n// conf.put(\"access_token\", \"...\");\n\n// The endpoint for the Vercel artifacts API.\n//\n// Defaults to `https://api.vercel.com`.\n// conf.put(\"endpoint\", \"...\");\n\n// The Vercel team ID. When set, the `teamId` query parameter\n// is appended to all API requests.\n// conf.put(\"team_id\", \"...\ [...]
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/vercel-artifacts\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(vercel-artifacts.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/vercel-artifacts\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(vercel-artifacts.Scheme, opendal.OperatorOptions{\n\t// The access token for Vercel.\n\t// \"access_token\": \"...\",\n\n\t// The endpoint for the Vercel artifacts API.\n\t//\n\t// Defaults to `https://api.vercel.com`.\n\t// \"endpoint\": \"...\",\n\n\t// The Vercel team ID. When set, the `teamId` query p [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"vercel-artifacts\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// The access token for Vercel.\n// opendal_operator_options_set(options, \"access_token\", \"...\");\n\n// The endpoint for the Vercel artifacts API.\n//\n// Defaults to `https://api.vercel.com`.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// The Vercel team ID. When set, the `teamId` query parameter\n// is appended to all API requests.\n// opendal_o [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"vercel-artifacts\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // The access token for Vercel.\n    // {\"access_token\", \"...\"},\n\n    // The endpoint for the Vercel artifacts API.\n    //\n    // Defaults to `https://api.vercel.com`.\n    // {\"endpoint\", \"...\"},\n\n    // The Vercel team ID. When set, the `teamId` query parameter\n    // is appended to all API requests.\n    // {\"team_id\", \"...\"},\n\n    // The Vercel team slug. When [...]
         }
       ]
     },
@@ -4553,14 +5749,32 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"vercel-blob\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"vercel-blob\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // vercel blob token.\n    // (\"token\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"vercel-blob\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"vercel-blob\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // vercel blob token.\n    // (\"token\".to_string(), \"...\".to_string()),\n])?;"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"vercel-blob\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"vercel-blob\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # vercel blob token.\n    # token=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"vercel-blob\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"vercel-blob\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # vercel blob token.\n    # token=\"...\",\n)"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/vercel-blob\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(vercel-blob.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/vercel-blob\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(vercel-blob.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// vercel blob token.\n\t// \"token\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"vercel-blob\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// vercel blob token.\n// opendal_operator_options_set(options, \"token\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"vercel-blob\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator . [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"vercel-blob\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // vercel blob token.\n    // {\"token\", \"...\"},\n};\nopendal::Operator operator(\"vercel-blob\", config);"
         }
       ]
     },
@@ -4654,26 +5868,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"webdav\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"webdav\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // username of this backend\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // password of this backend\n    // (\"password\".to_string(), \"...\".to_string()),\n\n    // token of this backend\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    // (\"roo [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"webdav\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"webdav\", [\n    // endpoint of this backend\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // username of this backend\n    // (\"username\".to_string(), \"...\".to_string()),\n\n    // password of this backend\n    // (\"password\".to_string(), \"...\".to_string()),\n\n    // token of this backend\n    // (\"token\".to_string(), \"...\".to_string()),\n\n    // root of this backend\n    //  [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"webdav\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// endpoint of this backend\n// config.put(\"endpoint\", \"...\");\n\n// username of this backend\n// config.put(\"username\", \"...\");\n\n// password of this backend\n// config.put(\"password\", \"...\");\n\n// token of this backend\n// config.put(\"token\", \"...\");\n\n// root of this backend\n// config.put(\"root\", \"...\");\n\n/ [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"webdav\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"webdav\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # username of this backend\n    # username=\"...\",\n\n    # password of this backend\n    # password=\"...\",\n\n    # token of this backend\n    # token=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # Disable automatic parent directory creation before write operations.\n    #\n    # By default, OpenDAL creates parent directori [...]
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"webdav\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"webdav\",\n    # endpoint of this backend\n    # endpoint=\"...\",\n\n    # username of this backend\n    # username=\"...\",\n\n    # password of this backend\n    # password=\"...\",\n\n    # token of this backend\n    # token=\"...\",\n\n    # root of this backend\n    # root=\"...\",\n\n    # Disable automatic parent directory creation before write operations.\n    #\n    # By default, OpenDAL creates parent dir [...]
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"webdav\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"webdav\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // username of this backend\n  // username: \"...\",\n\n  // password of this backend\n  // password: \"...\",\n\n  // token of this backend\n  // token: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // Disable automatic parent directory creation before write operations.\n  //\n  // By default, OpenDAL creates par [...]
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"webdav\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"webdav\", {\n  // endpoint of this backend\n  // endpoint: \"...\",\n\n  // username of this backend\n  // username: \"...\",\n\n  // password of this backend\n  // password: \"...\",\n\n  // token of this backend\n  // token: \"...\",\n\n  // root of this backend\n  // root: \"...\",\n\n  // Disable automatic parent directory creation before write operations.\n  //\n  // By default, OpenDAL creat [...]
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"webdav\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// endpoint of this backend\n// conf.put(\"endpoint\", \"...\");\n\n// username of this backend\n// conf.put(\"username\", \"...\");\n\n// password of this backend\n// conf.put(\"password\", \"...\");\n\n// token of this backend\n// conf.put(\"token\", \"...\");\n\n// root of this backend\n// conf.put(\"root\", \"...\");\n\n// Disable au [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"webdav\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"webdav\", {\n  # endpoint of this backend\n  # \"endpoint\" => \"...\",\n\n  # username of this backend\n  # \"username\" => \"...\",\n\n  # password of this backend\n  # \"password\" => \"...\",\n\n  # token of this backend\n  # \"token\" => \"...\",\n\n  # root of this backend\n  # \"root\" => \"...\",\n\n  # Disable automatic parent directory creation before write operations.\n  #\n  # By default, OpenDAL cre [...]
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/webdav\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(webdav.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/webdav\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(webdav.Scheme, opendal.OperatorOptions{\n\t// endpoint of this backend\n\t// \"endpoint\": \"...\",\n\n\t// username of this backend\n\t// \"username\": \"...\",\n\n\t// password of this backend\n\t// \"password\": \"...\",\n\n\t// token of this backend\n\t// \"token\": \"...\",\n\n\t// root of this backend\n\t// \ [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"webdav\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// endpoint of this backend\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// username of this backend\n// opendal_operator_options_set(options, \"username\", \"...\");\n\n// password of this backend\n// opendal_operator_options_set(options, \"password\", \"...\");\n\n// token of this backend\n// opendal_operator_options_set(options, \"token\", \"...\"); [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"webdav\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // endpoint of this backend\n    // {\"endpoint\", \"...\"},\n\n    // username of this backend\n    // {\"username\", \"...\"},\n\n    // password of this backend\n    // {\"password\", \"...\"},\n\n    // token of this backend\n    // {\"token\", \"...\"},\n\n    // root of this backend\n    // {\"root\", \"...\"},\n\n    // Disable automatic parent directory creation before write o [...]
         }
       ]
     },
@@ -4731,26 +5969,50 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"webhdfs\", [\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"webhdfs\", [\n    // Root for webhdfs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for webhdfs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Name of the user for webhdfs.\n    // (\"user_name\".to_string(), \"...\".to_string()),\n\n    // Delegation token for webhdfs.\n    // (\"delegation\".to_string(), \"...\".to_string()),\n\n    // Disable batch listing\n    // [...]
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"webhdfs\", [\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"webhdfs\", [\n    // Root for webhdfs.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // Endpoint for webhdfs.\n    // (\"endpoint\".to_string(), \"...\".to_string()),\n\n    // Name of the user for webhdfs.\n    // (\"user_name\".to_string(), \"...\".to_string()),\n\n    // Delegation token for webhdfs.\n    // (\"delegation\".to_string(), \"...\".to_string()),\n\n    // Disable batch listing\n [...]
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nOperator operator = Operator.of(\"webhdfs\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// Root for webhdfs.\n// config.put(\"root\", \"...\");\n\n// Endpoint for webhdfs.\n// config.put(\"endpoint\", \"...\");\n\n// Name of the user for webhdfs.\n// config.put(\"user_name\", \"...\");\n\n// Delegation token for webhdfs.\n// config.put(\"delegation\", \"...\");\n\n// Disable batch listing\n// config.put(\"disable_list_bat [...]
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"webhdfs\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"webhdfs\",\n    # Root for webhdfs.\n    # root=\"...\",\n\n    # Endpoint for webhdfs.\n    # endpoint=\"...\",\n\n    # Name of the user for webhdfs.\n    # user_name=\"...\",\n\n    # Delegation token for webhdfs.\n    # delegation=\"...\",\n\n    # Disable batch listing\n    # disable_list_batch=\"true\",\n\n    # atomic_write_dir of this backend\n    # atomic_write_dir=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"webhdfs\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"webhdfs\",\n    # Root for webhdfs.\n    # root=\"...\",\n\n    # Endpoint for webhdfs.\n    # endpoint=\"...\",\n\n    # Name of the user for webhdfs.\n    # user_name=\"...\",\n\n    # Delegation token for webhdfs.\n    # delegation=\"...\",\n\n    # Disable batch listing\n    # disable_list_batch=\"true\",\n\n    # atomic_write_dir of this backend\n    # atomic_write_dir=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"webhdfs\", {\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"webhdfs\", {\n  // Root for webhdfs.\n  // root: \"...\",\n\n  // Endpoint for webhdfs.\n  // endpoint: \"...\",\n\n  // Name of the user for webhdfs.\n  // user_name: \"...\",\n\n  // Delegation token for webhdfs.\n  // delegation: \"...\",\n\n  // Disable batch listing\n  // disable_list_batch: \"true\",\n\n  // atomic_write_dir of this backend\n  // atomic_write_dir: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"webhdfs\", {\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"webhdfs\", {\n  // Root for webhdfs.\n  // root: \"...\",\n\n  // Endpoint for webhdfs.\n  // endpoint: \"...\",\n\n  // Name of the user for webhdfs.\n  // user_name: \"...\",\n\n  // Delegation token for webhdfs.\n  // delegation: \"...\",\n\n  // Disable batch listing\n  // disable_list_batch: \"true\",\n\n  // atomic_write_dir of this backend\n  // atomic_write_dir: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nOperator op = Operator.of(\"webhdfs\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// Root for webhdfs.\n// conf.put(\"root\", \"...\");\n\n// Endpoint for webhdfs.\n// conf.put(\"endpoint\", \"...\");\n\n// Name of the user for webhdfs.\n// conf.put(\"user_name\", \"...\");\n\n// Delegation token for webhdfs.\n// conf.put(\"delegation\", \"...\");\n\n// Disable batch listing\n// conf.put(\"disable_list_batch\", \"true [...]
+          "binding": "ruby",
+          "language": "ruby",
+          "minimal": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"webhdfs\", {\n})",
+          "full": "require \"opendal\"\n\noperator = OpenDal::Operator.new(\"webhdfs\", {\n  # Root for webhdfs.\n  # \"root\" => \"...\",\n\n  # Endpoint for webhdfs.\n  # \"endpoint\" => \"...\",\n\n  # Name of the user for webhdfs.\n  # \"user_name\" => \"...\",\n\n  # Delegation token for webhdfs.\n  # \"delegation\" => \"...\",\n\n  # Disable batch listing\n  # \"disable_list_batch\" => \"true\",\n\n  # atomic_write_dir of this backend\n  # \"atomic_write_dir\" => \"...\",\n})"
+        },
+        {
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/webhdfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(webhdfs.Scheme, opendal.OperatorOptions{\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/webhdfs\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(webhdfs.Scheme, opendal.OperatorOptions{\n\t// Root for webhdfs.\n\t// \"root\": \"...\",\n\n\t// Endpoint for webhdfs.\n\t// \"endpoint\": \"...\",\n\n\t// Name of the user for webhdfs.\n\t// \"user_name\": \"...\",\n\n\t// Delegation token for webhdfs.\n\t// \"delegation\": \"...\",\n\n\t// Disable batch listing [...]
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_result_operator_new result = opendal_operator_new(\"webhdfs\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// Root for webhdfs.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// Endpoint for webhdfs.\n// opendal_operator_options_set(options, \"endpoint\", \"...\");\n\n// Name of the user for webhdfs.\n// opendal_operator_options_set(options, \"user_name\", \"...\");\n\n// Delegation token for webhdfs.\n// opendal_operator_options_set(options, \"delegation\", \".. [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n};\nopendal::Operator operator(\"webhdfs\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // Root for webhdfs.\n    // {\"root\", \"...\"},\n\n    // Endpoint for webhdfs.\n    // {\"endpoint\", \"...\"},\n\n    // Name of the user for webhdfs.\n    // {\"user_name\", \"...\"},\n\n    // Delegation token for webhdfs.\n    // {\"delegation\", \"...\"},\n\n    // Disable batch listing\n    // {\"disable_list_batch\", \"true\"},\n\n    // atomic_write_dir of this backend\n    [...]
         }
       ]
     },
@@ -4780,26 +6042,44 @@
         {
           "binding": "rust",
           "language": "rust",
-          "minimal": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"yandex-disk\", [\n    (\"access_token\".to_string(), \"...\".to_string()),\n])?;",
-          "full": "use opendal::Operator;\n\nlet op = Operator::via_iter(\"yandex-disk\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // yandex disk oauth access_token.\n    (\"access_token\".to_string(), \"...\".to_string()),\n\n])?;"
+          "minimal": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"yandex-disk\", [\n    (\"access_token\".to_string(), \"...\".to_string()),\n])?;",
+          "full": "use opendal::Operator;\n\nlet operator = Operator::via_iter(\"yandex-disk\", [\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // (\"root\".to_string(), \"...\".to_string()),\n\n    // yandex disk oauth access_token.\n    (\"access_token\".to_string(), \"...\".to_string()),\n])?;"
+        },
+        {
+          "binding": "java",
+          "language": "java",
+          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\nconfig.put(\"access_token\", \"...\");\nOperator operator = Operator.of(\"yandex-disk\", config);",
+          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> config = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// config.put(\"root\", \"...\");\n\n// yandex disk oauth access_token.\nconfig.put(\"access_token\", \"...\");\nOperator operator = Operator.of(\"yandex-disk\", config);"
         },
         {
           "binding": "python",
           "language": "python",
-          "minimal": "import opendal\n\nop = opendal.Operator(\n    \"yandex-disk\",\n    access_token=\"...\",\n)",
-          "full": "import opendal\n\nop = opendal.Operator(\n    \"yandex-disk\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # yandex disk oauth access_token.\n    access_token=\"...\",\n\n)"
+          "minimal": "import opendal\n\noperator = opendal.Operator(\n    \"yandex-disk\",\n    access_token=\"...\",\n)",
+          "full": "import opendal\n\noperator = opendal.Operator(\n    \"yandex-disk\",\n    # root of this backend.\n    #\n    # All operations will happen under this root.\n    # root=\"...\",\n\n    # yandex disk oauth access_token.\n    access_token=\"...\",\n)"
         },
         {
           "binding": "nodejs",
           "language": "javascript",
-          "minimal": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"yandex-disk\", {\n  access_token: \"...\",\n});",
-          "full": "import { Operator } from \"opendal\";\n\nconst op = new Operator(\"yandex-disk\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // yandex disk oauth access_token.\n  access_token: \"...\",\n\n});"
+          "minimal": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"yandex-disk\", {\n  access_token: \"...\",\n});",
+          "full": "import { Operator } from \"opendal\";\n\nconst operator = new Operator(\"yandex-disk\", {\n  // root of this backend.\n  //\n  // All operations will happen under this root.\n  // root: \"...\",\n\n  // yandex disk oauth access_token.\n  access_token: \"...\",\n});"
         },
         {
-          "binding": "java",
-          "language": "java",
-          "minimal": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\nconf.put(\"access_token\", \"...\");\nOperator op = Operator.of(\"yandex-disk\", conf);",
-          "full": "import java.util.HashMap;\nimport java.util.Map;\nimport org.apache.opendal.Operator;\n\nMap<String, String> conf = new HashMap<>();\n// root of this backend.\n//\n// All operations will happen under this root.\n// conf.put(\"root\", \"...\");\n\n// yandex disk oauth access_token.\nconf.put(\"access_token\", \"...\");\n\nOperator op = Operator.of(\"yandex-disk\", conf);"
+          "binding": "go",
+          "language": "go",
+          "minimal": "import (\n\t\"github.com/apache/opendal-go-services/yandex-disk\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(yandex-disk.Scheme, opendal.OperatorOptions{\n\t\"access_token\": \"...\",\n})",
+          "full": "import (\n\t\"github.com/apache/opendal-go-services/yandex-disk\"\n\topendal \"github.com/apache/opendal/bindings/go\"\n)\n\noperator, err := opendal.NewOperator(yandex-disk.Scheme, opendal.OperatorOptions{\n\t// root of this backend.\n\t//\n\t// All operations will happen under this root.\n\t// \"root\": \"...\",\n\n\t// yandex disk oauth access_token.\n\t\"access_token\": \"...\",\n})"
+        },
+        {
+          "binding": "c",
+          "language": "c",
+          "minimal": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\nopendal_operator_options_set(options, \"access_token\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"yandex-disk\", options);\nopendal_operator *operator = result.op;\n\n/* ... use operator ... */\n\nopendal_operator_free(operator);\nopendal_operator_options_free(options);",
+          "full": "#include \"opendal.h\"\n\nopendal_operator_options *options = opendal_operator_options_new();\n// root of this backend.\n//\n// All operations will happen under this root.\n// opendal_operator_options_set(options, \"root\", \"...\");\n\n// yandex disk oauth access_token.\nopendal_operator_options_set(options, \"access_token\", \"...\");\nopendal_result_operator_new result = opendal_operator_new(\"yandex-disk\", options);\nopendal_operator *operator = result.op;\n\n/* . [...]
+        },
+        {
+          "binding": "cpp",
+          "language": "cpp",
+          "minimal": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    {\"access_token\", \"...\"},\n};\nopendal::Operator operator(\"yandex-disk\", config);",
+          "full": "#include \"opendal.hpp\"\n\nstd::unordered_map<std::string, std::string> config{\n    // root of this backend.\n    //\n    // All operations will happen under this root.\n    // {\"root\", \"...\"},\n\n    // yandex disk oauth access_token.\n    {\"access_token\", \"...\"},\n};\nopendal::Operator operator(\"yandex-disk\", config);"
         }
       ]
     }
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index b62ac9383..c0c66a0d1 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -393,7 +393,7 @@ const config = {
       prism: {
         theme: themes.github,
         darkTheme: themes.dracula,
-        additionalLanguages: ["rust", "java", "groovy", "python"],
+        additionalLanguages: ["rust", "java", "groovy", "python", "ruby"],
       },
       zoom: {
         selector: "img:not(a img)",