[PR #855] [CLOSED] Disable the backtrace feature from failure when possible #1743

Closed
opened 2026-03-16 02:23:02 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/855
Author: @jbg
Created: 8/23/2019
Status: Closed

Base: masterHead: master


📝 Commits (1)

  • be5db6e disable the backtrace feature from failure when possible

📊 Changes

4 files changed (+16 additions, -7 deletions)

View changed files

📝 crates/client/Cargo.toml (+4 -1)
📝 crates/https/Cargo.toml (+4 -2)
📝 crates/proto/Cargo.toml (+4 -2)
📝 crates/resolver/Cargo.toml (+4 -2)

📄 Description

One of the most common C dependencies I come across in Rust projects is libbacktrace, which is the default backtrace implementation for the backtrace crate, which is a dependency of failure when default features are enabled.

Not all projects need backtraces, and in many environments C dependencies make building and deployment harder.

It's not possible for a crate that depends on, e.g., trust-dns-resolver to remove the backtrace feature from failure, because features are strictly additive.

This PR turns off default features for failure on the proto, client, resolver and https crates, allowing crates that depend on these crates to switch off the backtrace feature if they want to, eliminating the C dependency.

I didn't turn off default features for the server crate because it already depends on backtrace directly.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hickory-dns/hickory-dns/pull/855 **Author:** [@jbg](https://github.com/jbg) **Created:** 8/23/2019 **Status:** ❌ Closed **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (1) - [`be5db6e`](https://github.com/hickory-dns/hickory-dns/commit/be5db6e19d435a5f74befbe26e937c2f5992c4c4) disable the backtrace feature from failure when possible ### 📊 Changes **4 files changed** (+16 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `crates/client/Cargo.toml` (+4 -1) 📝 `crates/https/Cargo.toml` (+4 -2) 📝 `crates/proto/Cargo.toml` (+4 -2) 📝 `crates/resolver/Cargo.toml` (+4 -2) </details> ### 📄 Description One of the most common C dependencies I come across in Rust projects is `libbacktrace`, which is the default backtrace implementation for the `backtrace` crate, which is a dependency of `failure` when default features are enabled. Not all projects need backtraces, and in many environments C dependencies make building and deployment harder. It's not possible for a crate that depends on, e.g., `trust-dns-resolver` to _remove_ the `backtrace` feature from `failure`, because features are strictly additive. This PR turns off default features for `failure` on the proto, client, resolver and https crates, allowing crates that depend on these crates to switch off the `backtrace` feature if they want to, eliminating the C dependency. I didn't turn off default features for the `server` crate because it already depends on `backtrace` directly. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 02:23:02 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#1743
No description provided.