8 releases

0.0.8 Nov 22, 2024
0.0.7 Aug 29, 2024
0.0.6 Mar 14, 2024
0.0.4 Jul 7, 2023
0.0.2 Apr 26, 2023

#968 in Web programming

Download history 85/week @ 2025-10-08 114/week @ 2025-10-15 138/week @ 2025-10-22 141/week @ 2025-10-29 20/week @ 2025-11-05 80/week @ 2025-11-19 56/week @ 2025-11-26 89/week @ 2025-12-03 122/week @ 2025-12-10 172/week @ 2025-12-17 84/week @ 2025-12-24 82/week @ 2025-12-31 153/week @ 2026-01-07 169/week @ 2026-01-14 171/week @ 2026-01-21

583 downloads per month

MIT license

18KB
324 lines

Documentation

This crate provides a simple interface for fetching oEmbed data from known providers.

Example

use oembed_rs::{find_provider, fetch, ConsumerRequest};

async fn example() {
    let url = "https://twitter.com/user/status/1000000000000000000";
    let (_, endpoint) = find_provider(url).expect("unknown provider");

    let response = fetch(
       &endpoint.url,
       ConsumerRequest {
           url,
           max_width: Some(1000),
           max_height: Some(500),
           ..ConsumerRequest::default()
       },
    )
    .await
    .expect("failed to fetch oembed data");
}

Introduction

This crate provides a simple interface for fetching oEmbed data from known providers based on the oembed specification.

Usage

use oembed_rs::{find_provider, fetch, ConsumerRequest};

async fn example() {
    let url = "https://twitter.com/user/status/1000000000000000000";
    let (_, endpoint) = find_provider(url).expect("unknown provider");

    let response = fetch(
       &endpoint.url,
       ConsumerRequest {
           url,
           max_width: Some(1000),
           max_height: Some(500),
           ..ConsumerRequest::default()
       },
    )
    .await
    .expect("failed to fetch oembed data");
}

Roadmap

  • Add support for custom providers
  • Return known errors from the specification properly
  • Support the discovery flow

Dependencies

~4–19MB
~200K SLoC