- The Reader class now has an overloaded method that takes an integer out parameter. This parameter is set the the network prefix length for the record containing the IP address in the database. Pull request by Ed Dorsey. GitHub #22 & #23.
- Minor refactoring. No substantial changes since beta1.
- Significant API changes. The
Find
method now takes a type parameter specifying the type to deserialize to. Note thatJToken
is not supported for this. You can either deserialize to an arbitrary collection or to model classes that use theMaxMind.Db.Constructor
andMaxMind.Db.Parameter
attributes to identify the constructors and parameters to deserialize to. - The API now significantly faster.
- Production release. No changes.
- The assembly now has a strong name.
- An internal use of
JTokenReader
is now disposed of after use. - A null stream passed to the
Reader(Stream)
constructor will now throw anArgumentNullException
.
- Minor code cleanup.
- A
IOException: Not enough storage is available to process this command
when using the memory-mapped mode with 32-bit builds or many threads was fixed. Closes GH #5. - Use of streams was replaced with direct access for both the memory-mapped file mode and the memory mode. This should increase performance in most cases.
- When using memory-mapped mode, the file is now opened with
FileShare.Delete
, allowing other processes to delete or replace the database when it is in use. The reader object will continue using the old database. - The Json.NET dependency was updated to 7.0.1.
- Improved the exception thrown when the constructor for
Reader
is called with an empty stream. - Updated Newtonsoft.Json dependency to 6.0.8.
- Minor code cleanup.
- First production release.
- Added public
Metadata
property onReader
.
- The database is now loadable from a
Stream
.
- Fixed a bug that occurred when using the memory-mode in a multi-threaded
application. When using a single
Reader
from multiple threads in memory- mode, the internal state of the object could become corrupt if you replaced the MaxMind database file on disk with another database file.
- Fixed bug that caused an exception to be thrown when two threads created a
MaxMind.Db.Reader
object at the same time. This was fixed using a synchronization lock around the code that opens/creates the memory map. We recommend that you share aReader
object across threads rather than create one for each thread or lookup.
- Changed namespace from
MaxMind.DB
toMaxMind.Db
to conform with Microsoft's recommendations. - Replaced custom
BigInteger
implementation withSystem.Numerics.BigInteger
. - Made
Metadata
an internal property onReader
.
- Initial release