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:31 UTC

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

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)",