Last updated: 11/17/2016
Performance is, of course, based on the system configuration and environment. During in-house testing against a database of sample data on our development machine, we have observed the following results (as of version 0.6, 9/13/2010): This performance level makes the library suitable for both client-side parsing, as well as server-based applications. Availability: A 30-day evaluation version of this assembly is available upon request. This evaluation will not support being run in a server environment such as ASP or a Web Service - if you specifically need to evaluate the parser in that environment, we'll be happy to provide a server evaluation license. Documentation: Compiled help file is available along with the evaluation version or purchased edition. Support: Clients who purchase a license have access to a dedicated support forum, as well as a bug / issue tracker to report or monitor progress on issues and feature requests.
Performance is, of course, based on the system configuration and environment. During in-house testing against a database of sample data on our development machine, we have observed the following results (as of version 0.6, 9/13/2010):
This performance level makes the library suitable for both client-side parsing, as well as server-based applications.
Availability: A 30-day evaluation version of this assembly is available upon request. This evaluation will not support being run in a server environment such as ASP or a Web Service - if you specifically need to evaluate the parser in that environment, we'll be happy to provide a server evaluation license.
Documentation: Compiled help file is available along with the evaluation version or purchased edition.
Support: Clients who purchase a license have access to a dedicated support forum, as well as a bug / issue tracker to report or monitor progress on issues and feature requests.
DLIDLib supports any jurisdictional format that adheres closely to the published AAMVA specification. However, not all jurisdictions do, and there may be some deviations that have not been addressed yet in the library. We are continuously updating the parser as new jurisdictions implement the AAMVA standard and as jurisdictions make changes to their formats. If you encounter a license that does not parse correctly, please
The following tables identify all recognized jurisdictions and formats in those jurisdictions that we support, and indicates which of them we have specifically tested or received confirmation of accurate parsing from our clients. Note that our software is in use in other areas as well, with no reported parsing problems.
Support for Mexico IDs is being implemented for an upcoming release. This also includes the new Consular ID cards (Matrícula Consular).
The DLIDLib parser is available in several editions. If you have additional needs or requirements, please contact us so that we may address them for you. All versions of the parser include:
This edition allows the parser to be used on a single PC. This is designed for smaller single-site businesses using the parser themselves, rather than integrating it into a product line - for example, a night club using it on a single PC at the entrance for age verification.
Limitations: The Single Edition license is locked to a specific PC by means of a hardware configuration "fingerprint". Also, it will not operate in an ASP / web service environment.
This edition allows the parser to be used on any number of copies of a specific product line. There are no cumbersome hardware configuration "fingerprints" or registration codes to deal with on a per-PC basis. The license info is embedded into your application itself, and requires no effort or interaction from your customers.
Limitations: The Product Edition license is locked to a specific company name and product / application name. If you have 2 or 3 separate product lines using the parser, each requires a separate license. Also, it will not operate in an ASP / web service environment.
This edition allows the parser to be used in a server environment such as ASP or a web service. This allows a single server application to service any number of remote client products, and is ideal for OLTP applications.
Performance: Our internal testing yields a result of over 8,5001 IDs parsed per second. Clients are welcome to request a 30-day evaluation license to test the parser's performance in their own environment.
Limitations: The Server Edition license is locked to a specific PC by means of a hardware configuration "fingerprint", as well as a specific company name and product / application name. Note that a single server application can serve multiple client applications.
An extension of the Product Edition, this allows the parser to be used by any product line by your company. There are no cumbersome hardware configuration "fingerprints" or registration codes to deal with on a per-PC basis. The license info is embedded into your applications themselves, and requires no effort or interaction from your customers.
In cases where your company has or anticipates numerous product lines that use the parser, this edition will cap the costs of multiple Product Edition licenses. Furthermore, the Corporate Edition includes the features of the Server Edition, and can be used in a server environment such as ASP or a web service.
Limitations: The Product Edition license is locked only to a specific company name.
|Supports ASP &
for 1 year
Updates & Support
* While the Server license is locked to a specific application, the server application can potentially serve multiple client applications.
This extends your license to include the Compact Framework version of our parser, for use on hand-held devices running Windows CE or Windows Mobile.
Cost: This add-on cost is 30% of the selected license price.
The extended validation and decryption capabilities can be added to the parser license, as per the below pricing. Validation performs additional checks on the parsed license data to help detect counterfeiting. Some of the capabilities of the validator include:
The decryption capabilities include the following:
The library is updated as new formats emerge, and as capabilities are added or enhanced. As mentioned, clients are entitled for any updates to the product for 1 year after your purchase. Updates can be applied by simply replacing the DLL - there is no need to recompile your application. Beyond that, a 1-year renewal costs 20% of the original product price.
IMPORTANT: The library will never "deactivate" due to lack of a renewal, it will continue to operate indefinitely with any updated version of the parser released within a year of the license issue date. The renewal simply extends your license to include another year of updates to any new formats, as states periodically update their data format.
If you are interested in a priority support contract, we offer yearly plans for 15% of your license price. This includes:
If you have additional requirements or needs and are interested in discussing a custom price quote for your business scenario, please contact us. We also offer custom development services, and can integrate DLIDLib into your existing product, or design a new DLIDLib-enabled product for you.
1 This performance is based on internal testing against our entire collection of sample data from all tested jurisdictions, using v0.3.1 of the parser, as of May 2009. This should provide a very reliable statistical sample that covers all known formats, versions, etc. Parsing times in your application will vary depending on factors such as hardware configuration, software environment, available system resources, etc.
2 Georgia licenses issued through late 2009 are encrypted. Decryption requires a license from the state of Georgia - contact us for additional requirements. Licenses issued from 2010 onward are not encrypted, and do not require the decryption add-on to be read.
DLIDLib directly reads from no scanner, and is compatible with any scanner. The parser is device-agnostic, and will parse data from any source. It is not tied to any specific device, and can be used without an attached scanner, such as in a server-based environment. That said, the developer must read from the device and pass the data to DLIDLib.
We do have a plugin-based framework to read from several specific scanner devices, and this can be provided along with the parser to help further application development if desired. Currently, this supports numerous RS-232 serial, USB/HID, and Keyboard wedge devices from IDTech, MagTek, Symbol, and E-Seek.
The parser reads the data from the 2- or 3-track magnetic stripe data, or from the PDF417, Micro-PDF417, or Compact PDF417 barcode on state non-driver IDs, driver licenses, permits, and similarly compliant cards, as called for by the AAMVA specification. However, the parser does not decode the barcode image itself, but reads the decoded data from the barcode. Therefore, the parser will read properly formatted data from other sources as well. This enables it to be used in a server-based environment, as well as to read data "drop files" created by some hardware devices or image decoders.
Not directly. Barcode scanners typically decode the data into a stream of bytes or characters, which is what DLIDLib reads. If your application is optically scanning the barcodes into image files, then a 3rd-party library to locate and decode the barcode within that image is required. This may be provided by the hardware scanner manufacturer, or obtained from a 3rd party.
Note that in our experience, hardware readers with a built-in decoder are both faster and much more reliable at decoding the barcods than the numerous image processing libraries we've worked with so far.
The parser has support for decoding numerous image formats, incluging JPEG 2000, via a 3rd-party plugin. This support is provided by the FreeImage Project, an open-source image library licensed under the GPL. Use of this plugin is optional - if the two required FreeImage DLL files are present in the parser folder, photo images will be decoded automatically. If the files are not there, the raw image data is still available, along with the expected image format. Your application can use its own decoding capabilities to process the image data.
The FreeImage library is available at:
The files required to support image decoding are:
No. The data returned from a license is Read-Only, and the classes cannot be created by the user. There is no technical reason it can't work both ways, but we're not aware of any legal reasons to create license data, as only state motor vehicle departments and federal agencies can legally create licenses and Id cards. To prevent misuse of the library for illicit purposes, we do not enable the parser to operate in reverse.
However, for the purposes of masking real licenses with fake data for testing purposes, the parser does provide methods to replace personal information in a license with phony data, while preserving the exact formatting and alignment. This uses special masking characters to replace the personal data elements, and does not allow the user to specify what data will be written to those elements.
Of course, if your organization does have a state or federally sanctioned use for such a capability, please contact us and we can discuss options.
This should never be the case when scanning a 2D barcode. However, when reading the magnetic strip, this will actually often be the case. The magnetic strip data does not contain the full expiration date - only the month and the year. It may further specify whether to use the birthdate day, the last day of the expiration month, or the first day of the month after the birthday month. These are the only three possible days that can be specified, so if the expiration date printed on the card is not one of these three days, then it will not exactly match. This is a limitation of the data available in the magnetic strip data.
We are proud to announce the release of an update to our DLIDLib parser, version 0.6.
We have just implemented passport capabilities to our DLIDLib parser, which has been gaining significant traction in the industry for its driver's license and ID card parsing capabilities. This new version, to be released this week, also includes enhancements to military ID card support, as well as support for new formats being issued by several states.
Furthermore, performance has been significantly improved: Parsing is ~ 760% faster, and parsing with validation is ~ 412% faster.
We are pleased to announce the release of version 0.3 of our driver's license / ID card parsing library. Thanks to a great deal of helpful feedback from some of our initial clients, we've made dozens of changes and enhancements to improve ease-of-integration and simplicity of the interface.
Since our early adopter clients were in the process of evaluating our library for integration into their product line, this was a perfect opportunity to integrate their feedback into our own development cycle, and get these changes into place before "locking down" the interface to ensure future compatibility, and allow drop-in replacement of the DLL file for client upgrades. Going forward, enhancements to the parser will be directly compatible with the current interface and not require any code changes.
During this process, we've expanded our testing database to include several more states, and also additional formats for states we had already tested.We also made a few enhancements to the parsing engine that not only accommodate some jurisdiction-specific deviations we have encountered, but that are likely to be applicable to future formats as well.
We've simplified access to many properties to help minimize the code needed by developers to integrate our parser. One major change has been the replacement of exceptions to indicate invalid data for a particular element, to an enumerated constant or a shared property to represent an invalid value. This allows data to be processed and displayed with simpler If checks instead of more complex exception handling.
We're pleased to announce that our parser has been tested successfully against these additional states: AK, DC, DE, HI, ID, KS, AL, IN, CO. A few updates were made to accommodate older licenses (pre-2000) as well as to accommodate some older issuer IDs. These changes have been rolled into the minor update v0.3.1. Our State Compatibility Matrix has been updated.
As always, current clients can see the changelog and the complete issue history database in our Issue Tracker.
Contact: Hugh Clarke
Location: Hurst, Texas
Contact: Bruce Brenner
Location: Los Angeles, CA
Location: Tulsa, OK
You can also open this documentation in a new window.