maxmind-db 1.0.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +4 -0
  3. data/LICENSE-APACHE +202 -0
  4. data/LICENSE-MIT +17 -0
  5. data/README.dev.md +30 -0
  6. data/README.md +54 -0
  7. data/Rakefile +12 -0
  8. data/bin/mmdb-benchmark.rb +61 -0
  9. data/lib/maxmind/db.rb +274 -0
  10. data/lib/maxmind/db/decoder.rb +232 -0
  11. data/lib/maxmind/db/errors.rb +8 -0
  12. data/lib/maxmind/db/file_reader.rb +37 -0
  13. data/lib/maxmind/db/memory_reader.rb +24 -0
  14. data/lib/maxmind/db/metadata.rb +61 -0
  15. data/maxmind-db.gemspec +19 -0
  16. data/test/data/LICENSE +4 -0
  17. data/test/data/MaxMind-DB-spec.md +558 -0
  18. data/test/data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  19. data/test/data/README.md +4 -0
  20. data/test/data/bad-data/README.md +7 -0
  21. data/test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb +0 -0
  22. data/test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb +0 -0
  23. data/test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb +1 -0
  24. data/test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb +0 -0
  25. data/test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb +0 -0
  26. data/test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb +1 -0
  27. data/test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb +1 -0
  28. data/test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb +0 -0
  29. data/test/data/perltidyrc +12 -0
  30. data/test/data/source-data/GeoIP2-Anonymous-IP-Test.json +41 -0
  31. data/test/data/source-data/GeoIP2-City-Test.json +12852 -0
  32. data/test/data/source-data/GeoIP2-Connection-Type-Test.json +102 -0
  33. data/test/data/source-data/GeoIP2-Country-Test.json +11347 -0
  34. data/test/data/source-data/GeoIP2-DensityIncome-Test.json +14 -0
  35. data/test/data/source-data/GeoIP2-Domain-Test.json +452 -0
  36. data/test/data/source-data/GeoIP2-Enterprise-Test.json +673 -0
  37. data/test/data/source-data/GeoIP2-ISP-Test.json +12585 -0
  38. data/test/data/source-data/GeoIP2-Precision-Enterprise-Test.json +1598 -0
  39. data/test/data/source-data/GeoIP2-User-Count-Test.json +2824 -0
  40. data/test/data/source-data/GeoLite2-ASN-Test.json +37 -0
  41. data/test/data/source-data/README +15 -0
  42. data/test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb +0 -0
  43. data/test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb +0 -0
  44. data/test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb +0 -0
  45. data/test/data/test-data/GeoIP2-City-Test.mmdb +0 -0
  46. data/test/data/test-data/GeoIP2-Connection-Type-Test.mmdb +0 -0
  47. data/test/data/test-data/GeoIP2-Country-Test.mmdb +0 -0
  48. data/test/data/test-data/GeoIP2-DensityIncome-Test.mmdb +0 -0
  49. data/test/data/test-data/GeoIP2-Domain-Test.mmdb +0 -0
  50. data/test/data/test-data/GeoIP2-Enterprise-Test.mmdb +0 -0
  51. data/test/data/test-data/GeoIP2-ISP-Test.mmdb +0 -0
  52. data/test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb +0 -0
  53. data/test/data/test-data/GeoIP2-User-Count-Test.mmdb +0 -0
  54. data/test/data/test-data/GeoLite2-ASN-Test.mmdb +0 -0
  55. data/test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb +0 -0
  56. data/test/data/test-data/MaxMind-DB-string-value-entries.mmdb +0 -0
  57. data/test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb +0 -0
  58. data/test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb +0 -0
  59. data/test/data/test-data/MaxMind-DB-test-decoder.mmdb +0 -0
  60. data/test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb +0 -0
  61. data/test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb +0 -0
  62. data/test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb +0 -0
  63. data/test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb +0 -0
  64. data/test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb +0 -0
  65. data/test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb +0 -0
  66. data/test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb +0 -0
  67. data/test/data/test-data/MaxMind-DB-test-mixed-24.mmdb +0 -0
  68. data/test/data/test-data/MaxMind-DB-test-mixed-28.mmdb +0 -0
  69. data/test/data/test-data/MaxMind-DB-test-mixed-32.mmdb +0 -0
  70. data/test/data/test-data/MaxMind-DB-test-nested.mmdb +0 -0
  71. data/test/data/test-data/README.md +26 -0
  72. data/test/data/test-data/maps-with-pointers.raw +0 -0
  73. data/test/data/test-data/write-test-data.pl +620 -0
  74. data/test/data/tidyall.ini +5 -0
  75. data/test/mmdb_util.rb +24 -0
  76. data/test/test_decoder.rb +241 -0
  77. data/test/test_reader.rb +415 -0
  78. metadata +126 -0
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: maxmind-db
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.beta
5
+ platform: ruby
6
+ authors:
7
+ - William Storey
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-12-24 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A gem for reading MaxMind DB files. MaxMind DB is a binary file format
14
+ that stores data indexed by IP address subnets (IPv4 or IPv6).
15
+ email: wstorey@maxmind.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - CHANGELOG.md
21
+ - LICENSE-APACHE
22
+ - LICENSE-MIT
23
+ - README.dev.md
24
+ - README.md
25
+ - Rakefile
26
+ - bin/mmdb-benchmark.rb
27
+ - lib/maxmind/db.rb
28
+ - lib/maxmind/db/decoder.rb
29
+ - lib/maxmind/db/errors.rb
30
+ - lib/maxmind/db/file_reader.rb
31
+ - lib/maxmind/db/memory_reader.rb
32
+ - lib/maxmind/db/metadata.rb
33
+ - maxmind-db.gemspec
34
+ - test/data/LICENSE
35
+ - test/data/MaxMind-DB-spec.md
36
+ - test/data/MaxMind-DB-test-metadata-pointers.mmdb
37
+ - test/data/README.md
38
+ - test/data/bad-data/README.md
39
+ - test/data/bad-data/libmaxminddb/libmaxminddb-offset-integer-overflow.mmdb
40
+ - test/data/bad-data/maxminddb-golang/cyclic-data-structure.mmdb
41
+ - test/data/bad-data/maxminddb-golang/invalid-bytes-length.mmdb
42
+ - test/data/bad-data/maxminddb-golang/invalid-data-record-offset.mmdb
43
+ - test/data/bad-data/maxminddb-golang/invalid-map-key-length.mmdb
44
+ - test/data/bad-data/maxminddb-golang/invalid-string-length.mmdb
45
+ - test/data/bad-data/maxminddb-golang/metadata-is-an-uint128.mmdb
46
+ - test/data/bad-data/maxminddb-golang/unexpected-bytes.mmdb
47
+ - test/data/perltidyrc
48
+ - test/data/source-data/GeoIP2-Anonymous-IP-Test.json
49
+ - test/data/source-data/GeoIP2-City-Test.json
50
+ - test/data/source-data/GeoIP2-Connection-Type-Test.json
51
+ - test/data/source-data/GeoIP2-Country-Test.json
52
+ - test/data/source-data/GeoIP2-DensityIncome-Test.json
53
+ - test/data/source-data/GeoIP2-Domain-Test.json
54
+ - test/data/source-data/GeoIP2-Enterprise-Test.json
55
+ - test/data/source-data/GeoIP2-ISP-Test.json
56
+ - test/data/source-data/GeoIP2-Precision-Enterprise-Test.json
57
+ - test/data/source-data/GeoIP2-User-Count-Test.json
58
+ - test/data/source-data/GeoLite2-ASN-Test.json
59
+ - test/data/source-data/README
60
+ - test/data/test-data/GeoIP2-Anonymous-IP-Test.mmdb
61
+ - test/data/test-data/GeoIP2-City-Test-Broken-Double-Format.mmdb
62
+ - test/data/test-data/GeoIP2-City-Test-Invalid-Node-Count.mmdb
63
+ - test/data/test-data/GeoIP2-City-Test.mmdb
64
+ - test/data/test-data/GeoIP2-Connection-Type-Test.mmdb
65
+ - test/data/test-data/GeoIP2-Country-Test.mmdb
66
+ - test/data/test-data/GeoIP2-DensityIncome-Test.mmdb
67
+ - test/data/test-data/GeoIP2-Domain-Test.mmdb
68
+ - test/data/test-data/GeoIP2-Enterprise-Test.mmdb
69
+ - test/data/test-data/GeoIP2-ISP-Test.mmdb
70
+ - test/data/test-data/GeoIP2-Precision-Enterprise-Test.mmdb
71
+ - test/data/test-data/GeoIP2-User-Count-Test.mmdb
72
+ - test/data/test-data/GeoLite2-ASN-Test.mmdb
73
+ - test/data/test-data/MaxMind-DB-no-ipv4-search-tree.mmdb
74
+ - test/data/test-data/MaxMind-DB-string-value-entries.mmdb
75
+ - test/data/test-data/MaxMind-DB-test-broken-pointers-24.mmdb
76
+ - test/data/test-data/MaxMind-DB-test-broken-search-tree-24.mmdb
77
+ - test/data/test-data/MaxMind-DB-test-decoder.mmdb
78
+ - test/data/test-data/MaxMind-DB-test-ipv4-24.mmdb
79
+ - test/data/test-data/MaxMind-DB-test-ipv4-28.mmdb
80
+ - test/data/test-data/MaxMind-DB-test-ipv4-32.mmdb
81
+ - test/data/test-data/MaxMind-DB-test-ipv6-24.mmdb
82
+ - test/data/test-data/MaxMind-DB-test-ipv6-28.mmdb
83
+ - test/data/test-data/MaxMind-DB-test-ipv6-32.mmdb
84
+ - test/data/test-data/MaxMind-DB-test-metadata-pointers.mmdb
85
+ - test/data/test-data/MaxMind-DB-test-mixed-24.mmdb
86
+ - test/data/test-data/MaxMind-DB-test-mixed-28.mmdb
87
+ - test/data/test-data/MaxMind-DB-test-mixed-32.mmdb
88
+ - test/data/test-data/MaxMind-DB-test-nested.mmdb
89
+ - test/data/test-data/README.md
90
+ - test/data/test-data/maps-with-pointers.raw
91
+ - test/data/test-data/write-test-data.pl
92
+ - test/data/tidyall.ini
93
+ - test/mmdb_util.rb
94
+ - test/test_decoder.rb
95
+ - test/test_reader.rb
96
+ homepage: https://github.com/maxmind/MaxMind-DB-Reader-ruby
97
+ licenses:
98
+ - Apache-2.0
99
+ - MIT
100
+ metadata:
101
+ bug_tracker_uri: https://github.com/maxmind/MaxMind-DB-Reader-ruby/issues
102
+ changelog_uri: https://github.com/maxmind/MaxMind-DB-Reader-ruby/blob/master/CHANGELOG.md
103
+ documentation_uri: https://github.com/maxmind/MaxMind-DB-Reader-ruby
104
+ homepage_uri: https://github.com/maxmind/MaxMind-DB-Reader-ruby
105
+ source_code_uri: https://github.com/maxmind/MaxMind-DB-Reader-ruby
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">"
118
+ - !ruby/object:Gem::Version
119
+ version: 1.3.1
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 2.7.6
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: A gem for reading MaxMind DB files.
126
+ test_files: []