
=====
xylib
=====

xylib is a portable library for reading files that contain x-y data from
powder diffraction, spectroscopy and other experimental methods.

Supported formats:

-  plain text (CSV or TSV or space-separated-values)
-  Crystallographic Information File for Powder Diffraction (pdCIF)
-  Siemens/Bruker UXD
-  Siemens/Bruker RAW ver. 1/2/3/4
-  Philips UDF
-  Philips RD (raw scan) V3
-  Rigaku DAT
-  Sietronics Sieray CPI
-  DBWS/DMPLOT data file
-  Canberra MCA *(only one of Canberra MCA formats?)*
-  XFIT/Koalariet XDD
-  RIET7/LHPM/CSRIET/ILL\_D1A5/PSI\_DMC DAT
-  Vamas ISO14976
   *(only experiment modes: SEM or MAPSV or MAPSVDP are supported; 
   only REGULAR scan_mode is supported)*
-  Princeton Instruments WinSpec SPE
   *(only 1-D data is supported)*
- χPLOT CHI_

.. _CHI: http://www.esrf.eu/computing/scientific/FIT2D/FIT2D_REF/node115.html#SECTION0001851500000000000000

The library is written in C++, but it comes with C and Python bindings.

It also comes with a tiny program **xyconv**, which converts
supported formats to TSV.

For API description, see `xylib/xylib.h`__ file.

__ http://xylib.svn.sourceforge.net/viewvc/xylib/trunk/xylib/xylib.h?view=markup

Licence: `LGPL <http://creativecommons.org/licenses/LGPL/2.1/>`_

DOWNLOAD
========

**Binary packages**: 

* MS Windows `DLL + xyconv.exe`_ (compiled with MSVC9)
* Linux RPMs_ and DEBs_

.. _`DLL + xyconv.exe`: http://downloads.sourceforge.net/xylib/xylib_win-0.8.zip
.. _RPMs: http://download.opensuse.org/repositories/home://wojdyr/
.. _DEBs: https://launchpad.net/~wojdyr/+archive/fityk

**Source**:

* `tarball`_ 
* Subversion repository_. 

.. _`tarball`: http://downloads.sourceforge.net/xylib/xylib-0.8.tar.bz2
.. _repository: https://xylib.svn.sourceforge.net/svnroot/xylib/trunk/

To build from source, you need:

* C++ compiler (we tested GCC, MinGW, Visual C++)
* Boost_ libraries (only headers). 

.. _Boost: http://www.boost.org/

On Unix, just type ``./configure && make``.
If you download the source from svn, run ``autoreconf -i`` first.

MISC NOTES
==========

The file `sample-urls`__ contains links to files in formats handled by xylib.

__ https://xylib.svn.sourceforge.net/svnroot/xylib/trunk/sample-urls

In addition to C++ API, we provide C API and very simple `Python bindings`_.
So far we had no requests for binding to other languages.

.. _`Python bindings`: https://xylib.svn.sourceforge.net/svnroot/xylib/trunk/xylib_capi.py

Documentation for programmers who want to extend xylib is
in the file `README.dev`__.

__ https://xylib.svn.sourceforge.net/svnroot/xylib/trunk/README.dev

freshmeat__ provides new version notifications.

__ http://freshmeat.net/projects/xylib/

xylib is used by:

-  `fityk <http://www.unipress.waw.pl/fityk>`_
-  `xyConvert <http://www.unipress.waw.pl/fityk/xyconvert>`_

AUTHORS
=======

-  Marcin Wojdyr wojdyr@gmail.com (maintainer)
-  Peng ZHANG zhangpengcas@gmail.com

CONTACT
=======

Feel free to send e-mail to the authors, or to the
`fityk-dev mailing list <http://groups.google.com/group/fityk-dev>`_.

CREDITS
=======

-  Google - the library was started as Google Summer of Code 2007 project 
   by Peng ZHANG, mentored by Marcin Wojdyr from Fityk organization.
-  Michael Richardson provided VAMAS specification and sample files.
-  David Hovis provided a WinSpec file format specification and sample files.
-  Pablo Bianucci provided his code for reading WinSpec format and sample files.
-  Brian H. Toby suggested adding pdCIF format.
-  Martijn Fransen provided very useful specifications of Philips formats.
-  Vincent Favre-Nicolin provided PSI\_DMC and ILL\_D1A5 samples;
   reading his ObjCryst library was also helpful.
-  Janos Vegh sent us his VAMAS reading routines (long time ago, before this 
   project started). 
-  Andreas Breslau added Bruker V3 (RAW1.01) support.
-  Bjørn Tore Lønstad provided Bruker RAW V3 format specification and samples.
-  Hector Zhao patched VAMAS code.

HISTORY
=======

* 0.8 (2011-01-18)

  - fixed a couple of bugs in pdCIF implementation

* 0.7 (2010-10-09)

  - added χPLOT (CHIPLOT) format (extension .chi)
  - fixed bug in reading VAMAS files with transmission data (Hector Zhao)

* 0.6 (2010-04-29)

  - fixed reading of Bruker v3 files
  - changes in API, added C API

* 0.5 (2010-01-04)

  - added support for compressed files \*.gz (requires zlib) and \*.bz2 (bzlib)

* 0.4 (2009-06-11)

  - added file caching (for details see ``xylib/cache.h``)
  - changes to parsing text files in which numeric data is mixed with text

* 0.3 (2008-06-03)

  - added Bruker binary RAW1.01 format
  - fixed bug in reading one-column ascii files

* 0.2 (2008-03-09)

  - initial public release

.. raw:: html

   <p align="right">
   <a href="http://sourceforge.net/projects/xylib">
   <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=204287&amp;type=10" width="80" height="15" />
   </a>
   </p>

