Skip to main content

Crate openmeteo_rs

Crate openmeteo_rs 

Source
Expand description

Typed Rust client for the Open-Meteo API.

The current surface includes the general forecast, archive, historical forecast, previous model runs, ensemble forecast, seasonal forecast, climate projections, satellite radiation, flood forecast, marine forecast, air-quality, geocoding, and elevation endpoints. Request variables are typed and weather-like responses use nullable column-oriented data.

Most users should import types from the crate root: Client, endpoint builders, request variable enums such as HourlyVar, response carriers such as ForecastResponse, and the crate-wide Result alias are all re-exported here.

Open-Meteo data is licensed under CC BY 4.0. Applications using the API should include attribution such as Weather data by Open-Meteo.com.

use openmeteo_rs::{Client, HourlyVar};

let client = Client::new();
let forecast = client
    .forecast(52.52, 13.41)
    .hourly([HourlyVar::Temperature2m])
    .forecast_days(1)
    .send()
    .await?;

if let Some(hourly) = forecast.hourly {
    let temps = hourly.temperature_2m().unwrap().values_f32().unwrap();
    let observed = temps.iter().flatten().count();
    println!("{} hourly temperatures, {} observed", temps.len(), observed);
}

Re-exports§

pub use response::CurrentData;
pub use response::DailyData;
pub use response::ForecastResponse;
pub use response::HourlyData;
pub use response::Minutely15Data;
pub use response::MonthlyData;
pub use response::SeriesValues;
pub use response::Variable;
pub use response::VariableDescriptor;
pub use response::VariableSeries;
pub use units::CellSelection;
pub use units::LengthUnit;
pub use units::PrecipitationUnit;
pub use units::TemperatureUnit;
pub use units::TimeFormat;
pub use units::Timezone;
pub use units::WindSpeedUnit;
pub use variables::Aggregation;
pub use variables::AirQualityCurrentVar;
pub use variables::AirQualityDomain;
pub use variables::AirQualityHourlyVar;
pub use variables::ArchiveModel;
pub use variables::ClimateDailyVar;
pub use variables::ClimateModel;
pub use variables::CurrentVar;
pub use variables::DailyVar;
pub use variables::EnsembleModel;
pub use variables::FloodDailyVar;
pub use variables::FloodModel;
pub use variables::HourlyVar;
pub use variables::MarineCurrentVar;
pub use variables::MarineDailyVar;
pub use variables::MarineHourlyVar;
pub use variables::MarineMinutely15Var;
pub use variables::MarineModel;
pub use variables::Minutely15Var;
pub use variables::PressureLevel;
pub use variables::SatelliteRadiationHourlyVar;
pub use variables::SatelliteRadiationModel;
pub use variables::SatelliteRadiationTemporalResolution;
pub use variables::SeasonalModel;
pub use variables::SeasonalMonthlyVar;
pub use variables::SoilMoistureDepth;
pub use variables::SoilTemperatureDepth;
pub use variables::TowerLevel;
pub use variables::WeatherModel;
pub use weather_code::Severity;
pub use weather_code::WmoCode;

Modules§

response
Shared response types and JSON decoding.
units
Request-side unit and location-selection types.
variables
Typed request variables and model selectors.
weather_code
WMO weather-code helpers.

Structs§

AirQualityBuilder
Builder for the /v1/air-quality endpoint.
ArchiveBuilder
Builder for the /v1/archive endpoint.
Client
Async Open-Meteo API client.
ClientBuilder
Builder for Client.
ClimateBuilder
Builder for the /v1/climate endpoint.
EnsembleBuilder
Builder for the /v1/ensemble endpoint.
FloodBuilder
Builder for the /v1/flood endpoint.
ForecastBatchBuilder
Builder for a multi-location /v1/forecast request.
ForecastBuilder
Builder for the /v1/forecast endpoint.
GeocodedLocation
A location returned by the Open-Meteo geocoding endpoint.
GeocodingBuilder
Builder for the /v1/search geocoding endpoint.
HistoricalForecastBuilder
Builder for the historical forecast /v1/forecast endpoint.
HttpError
HTTP transport error hidden behind the crate error type.
MarineBuilder
Builder for the /v1/marine endpoint.
PreviousRunsBuilder
Builder for the previous model runs /v1/forecast endpoint.
SatelliteRadiationBuilder
Builder for the satellite-radiation /v1/archive endpoint.
SeasonalBuilder
Builder for the /v1/seasonal endpoint.

Enums§

Error
Errors returned by the Open-Meteo client.

Type Aliases§

AirQualityResponse
Response returned by air-quality requests.
ArchiveResponse
Response returned by archive requests.
ClimateResponse
Response returned by climate projection requests.
EnsembleResponse
Response returned by ensemble forecast requests.
FloodResponse
Response returned by flood requests.
HistoricalForecastResponse
Response returned by historical forecast requests.
MarineResponse
Response returned by marine requests.
PreviousRunsResponse
Response returned by previous-runs requests.
Result
Crate-wide result type.
SatelliteRadiationResponse
Response returned by satellite-radiation requests.
SeasonalResponse
Response returned by seasonal forecast requests.