maxmind-db 1.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
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: []