Skip to content

Commit 5d3f620

Browse files
oschwaldclaude
andcommitted
Remove deprecated is_anonymous_proxy and is_satellite_provider fields
These fields have been removed from MaxMind databases. Users should use the dedicated Anonymous IP database for anonymity detection. This matches the Go v2 library which also removed these fields. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent a0803b0 commit 5d3f620

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@
8585
- New: `city.subdivisions.iter()` (empty Vec if not present)
8686
- Leaf values (strings, numbers, bools) remain `Option<T>` to preserve
8787
the distinction between "not present" and "present but empty"
88+
- **BREAKING CHANGE:** Removed `is_anonymous_proxy` and `is_satellite_provider`
89+
fields from `country::Traits` and `enterprise::Traits`. These fields are no
90+
longer present in MaxMind databases. Use the Anonymous IP database for
91+
anonymity detection.
8892
- Error messages now include byte offsets when available, making it easier to
8993
debug malformed databases. The `#[non_exhaustive]` attribute is added to
9094
`MaxMindDbError` to allow future additions without breaking changes.

src/geoip2.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -328,12 +328,8 @@ pub mod country {
328328

329329
#[derive(Deserialize, Serialize, Clone, Debug, Default, PartialEq)]
330330
pub struct Traits {
331-
#[serde(default, skip_serializing_if = "Option::is_none")]
332-
pub is_anonymous_proxy: Option<bool>,
333331
#[serde(default, skip_serializing_if = "Option::is_none")]
334332
pub is_anycast: Option<bool>,
335-
#[serde(default, skip_serializing_if = "Option::is_none")]
336-
pub is_satellite_provider: Option<bool>,
337333
}
338334

339335
impl Traits {
@@ -541,8 +537,6 @@ pub mod enterprise {
541537
#[serde(default, skip_serializing_if = "Option::is_none")]
542538
pub is_anonymous: Option<bool>,
543539
#[serde(default, skip_serializing_if = "Option::is_none")]
544-
pub is_anonymous_proxy: Option<bool>,
545-
#[serde(default, skip_serializing_if = "Option::is_none")]
546540
pub is_anonymous_vpn: Option<bool>,
547541
#[serde(default, skip_serializing_if = "Option::is_none")]
548542
pub is_anycast: Option<bool>,
@@ -555,8 +549,6 @@ pub mod enterprise {
555549
#[serde(default, skip_serializing_if = "Option::is_none")]
556550
pub is_residential_proxy: Option<bool>,
557551
#[serde(default, skip_serializing_if = "Option::is_none")]
558-
pub is_satellite_provider: Option<bool>,
559-
#[serde(default, skip_serializing_if = "Option::is_none")]
560552
pub is_tor_exit_node: Option<bool>,
561553
#[serde(default, skip_serializing_if = "Option::is_none")]
562554
pub mobile_country_code: Option<&'a str>,

0 commit comments

Comments
 (0)