# Legolas
![](https://img.shields.io/crates/d/legolas.png)](https://crates.io/crates/legolas) [![](https://docs.rs/legolas/badge.svg)](https://docs.rs/legolas/) [![Build Status](https://travis-ci.org/Jake-Shadle/legolas.png?branch=master)](https://travis-ci.org/Jake-Shadle/legolas)
This library will hopefully eventually become a companion to
[Gimli](https://github.com/gimli-rs/gimli), the zero-copy DWARF parser, but
instead providing access to Microsoft's Program Database (PDB) debugging format.
The goals of the library are basically the same as Gimli's.
* **Zero copy:** Use the original memory of the input (when possible, it isn't
always the case due to the PDB format, but I digress). This is in stark contrast
to the only "blessed" interface for reading PDB files, the
[DIA SDK](https://msdn.microsoft.com/en-us/library/x93ctkx8.aspx), which at a
minimum will allocate a _wide character_ string for every string in the PDB
(function names, type names, etc), even though, at its current version, the
string data is only ever stored as plain ASCII (AFAICT).
* **Lazy:** Simply put, don't do work until we need to
* **Cross-platform:** There is no reason you should not be able to read and
inspect PDB files on a platform other than Windows, other than that the DIA SDK
is a COM library.
## License
Licensed under either of
* Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([`LICENSE-MIT`](./LICENSE-MIT) or
http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.