| Crates.io | hive-apollo-router-plugin |
| lib.rs | hive-apollo-router-plugin |
| version | 2.1.3 |
| created_at | 2024-11-13 10:41:44.906258+00 |
| updated_at | 2025-09-15 15:10:01.027569+00 |
| description | Apollo-Router Plugin for Hive |
| homepage | |
| repository | https://github.com/graphql-hive/console/ |
| max_upload_size | |
| id | 1446358 |
| size | 326,744 |
Hive is a fully open-source schema registry, analytics, metrics and gateway for GraphQL federation and other GraphQL APIs.
This project includes a Hive integration plugin for Apollo-Router.
At the moment, the following are implemented:
This project is constructed as a Rust project that implements Apollo-Router plugin interface.
This build of this project creates an artifact identical to Apollo-Router releases, with additional features provided by Hive.
We provide a custom build of Apollo-Router that acts as a drop-in replacement, and adds Hive integration to Apollo-Router.
Please follow this guide and documentation for integrating Hive with Apollo Router
If you are building a custom Apollo-Router with your own native plugins, you can use the Hive plugin as a dependency from Crates.io:
[dependencies]
hive-apollo-router-plugin = "..."
And then in your codebase, make sure to import and register the Hive plugin:
use apollo_router::register_plugin;
// import the registry instance and the plugin registration function
use hive_apollo_router_plugin::registry::HiveRegistry;
// Import the usage plugin
use hive_apollo_router_plugin::usage::UsagePlugin;
// Import persisted documents plugin, if needed
use persisted_documents::PersistedDocumentsPlugin;
// In your main function, make sure to register the plugin before you create or initialize Apollo-Router
fn main() {
// Register the Hive usage_reporting plugin
register_plugin!("hive", "usage", UsagePlugin);
// Register the persisted documents plugin, if needed
register_plugin!("hive", "persisted_documents", PersistedDocumentsPlugin);
// Initialize the Hive Registry instance and start the Apollo Router
match HiveRegistry::new(None).and(apollo_router::main()) {
Ok(_) => {}
Err(e) => {
eprintln!("{}", e);
std::process::exit(1);
}
}
}
cargo check./router.yaml), use
cargo run -- --config router.yaml. Make sure to set environment variables required for your
setup and development process
(docs).cargo run -- --config router.yaml --log debug --dev --supergraph some.supergraph.graphql for
running it with a test supergraph file.