fix(services/goosefs): resolve master addresses from goosefs-site.properties (#8216) `GoosefsBuilder::build()` overlaid `master_addr` on top of the config that `from_properties_auto()` had already resolved, so the URI authority of `goosefs://host:port/path` (or the `master_addr` option) always won and the `goosefs.master.rpc.addresses` / `goosefs.master.hostname` keys of a deployed `goosefs-site.properties` never reached the client. A client pointed at a site file that lists the real HA masters still dialed the URI authority and failed with a gRPC transport error. `build()` now resolves master addresses as `GOOSEFS_MASTER_ADDR` > `goosefs-site.properties` > `master_addr`. The site file outranks `master_addr` because it carries a deployment's whole HA master list, which a single URI authority cannot express, and `GOOSEFS_MASTER_ADDR` stays on top as the per-process override. Because `from_properties_auto()` falls back to the SDK default `127.0.0.1:9200`, the builder now asks which source actually declared an address instead of reading the loaded value. User-facing impact: a site file or `GOOSEFS_MASTER_ADDR` now supersedes the URI authority and the `master_addr` option, and `build()` fails with `ConfigInvalid` when no source supplies an address instead of silently dialing `127.0.0.1:9200`. Bump goosefs-sdk to 0.1.9 for RUSTSEC-2026-0002 (`lru` >= 0.16.3) and master connection pooling. 0.1.9 does not yet honor `$GOOSEFS_CONF_DIR`; `$GOOSEFS_CONFIG_FILE` remains the way to point at a file outside the searched directories. Regenerated Java, .NET, and website docs for the new `master_addr` precedence.
Apache OpenDAL™ (/ˈoʊ.pən.dæl/, pronounced “OH-puhn-dal”) is an Open Data Access Layer that gives every language a unified way to access object storage, file storage, cloud SaaS, databases, protocols, and key-value services.
Apache OpenDAL™ is guided by its vision of One Layer, All Storage and its core principles: Open Community, Solid Foundation, Fast Access, Object Storage First, and Extensible Architecture. Read the explained vision at OpenDAL Vision.
opendalOperatorApache OpenDAL™ turns the vision of One Layer, All Storage into a practical data access layer for applications, libraries, and data systems.
Start with the binding for your application runtime. Each binding provides access to the same OpenDAL service model while following its language ecosystem.
Note: Each binding has its own independent version number, which may differ from the Rust core version. When checking for updates or compatibility, always refer to the specific binding's version rather than the core version.
Add layers when your application needs cross-service behavior such as retries, timeouts, observability, or traffic control.
RetryLayer Retry temporary failures. | TimeoutLayer Bound slow or hanging operations. | LoggingLayer Emit structured operation logs. | TracingLayer Trace requests across systems. |
MetricsLayer Export operation metrics. | PrometheusLayer Expose Prometheus metrics. | OtelMetricsLayer Export OpenTelemetry metrics. | Traffic Control ThrottleLayer · ConcurrentLimitLayer |
MimeGuessLayer Infer Content-Type from paths. | RouteLayer Route operations by path. | FoyerLayer Add hybrid cache behavior. | All Layers Explore the full layer list. |
Explore all available layers in the layers documentation.
Pick the storage services that your application needs. See the full OpenDAL service configuration docs in the services documentation.
See examples for runnable usage examples.
OpenDAL is an active open-source project. We are always open to people who want to use it or contribute to it. Here are some ways to go.
The first and most prominent mentions must use the full form: Apache OpenDAL™ of the name for any individual usage (webpage, handout, slides, etc.) Depending on the context and writing style, you should use the full form of the name sufficiently often to ensure that readers clearly understand the association of both the OpenDAL project and the OpenDAL software product to the ASF as the parent organization.
For more details, see the Apache Product Name Usage Guide.
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
Apache OpenDAL, OpenDAL, and Apache are either registered trademarks or trademarks of the Apache Software Foundation.