#chrome #dev-tools #cdp #auto-generate #build-tool #macro #api-bindings

build auto_generate_cdp

experimental crate to generate the Chrome Devtools Protocol

31 releases

0.4.4 Oct 28, 2023
0.4.2 Aug 1, 2023
0.4.1 Feb 2, 2023
0.4.0 Dec 27, 2022
0.2.9 May 23, 2021

#108 in Build Utils

Download history 4642/week @ 2024-07-23 3866/week @ 2024-07-30 4927/week @ 2024-08-06 5191/week @ 2024-08-13 4587/week @ 2024-08-20 4965/week @ 2024-08-27 5345/week @ 2024-09-03 4787/week @ 2024-09-10 5570/week @ 2024-09-17 4655/week @ 2024-09-24 5407/week @ 2024-10-01 5516/week @ 2024-10-08 4918/week @ 2024-10-15 5551/week @ 2024-10-22 5263/week @ 2024-10-29 5593/week @ 2024-11-05

22,567 downloads per month
Used in 39 crates (5 directly)

Custom license

135KB
1.5K SLoC

auto_generate_cdp

Docs Crates.io

An experimental crate to generate the Chrome Devtools Protocol.

Contributors

Usage

Add the following to your Cargo.toml:

[dependencies]
serde = {version = "1", features = ["derive"]}
serde_json = '1'

[build-dependencies]
auto_generate_cdp = {version = "0.4.4",default-features = false}

To generate the protocol, add the following to your build/build.rs script.

use auto_generate_cdp::init;

fn main() {
  init();
}

This will generate protocol.rs in your $OUT_DIR folder when you run $ cargo check or $ cargo build. Use like:

// src/protocol.rs

include!(concat!(env!("OUT_DIR"), "/protocol.rs"));

// src/main.rs

mod protocol;

fn main() {
  // protocol module contains the definitions now
}

Compiling behind a firewall

auto_generate_cdp needs to fetch files from raw.githubusercontent.com during compilation.

If for whatever reason you cannot access raw.githubusercontent.com directly (e.g. corporate firewall and/or internet censorship), you can try using a proxy server by setting any one of the following environment variables: https_proxy, http_proxy, ALL_PROXY. For example:

# proxy server uses curl format
https_proxy=http://localhost:8080 cargo build

Dependencies

~3–5MB
~86K SLoC