GNOME/libxml2 is an open-source project on GitHub with 760 stars, written primarily in C. Read-only mirror of https://gitlab.gnome.org/GNOME/libxml2
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
libxml2 is an XML toolkit implemented in C, originally developed for
the GNOME Project.
Official releases can be downloaded from
https://download.gnome.org/sources/libxml2/
The git repository is hosted on GNOME's GitLab server:
https://gitlab.gnome.org/GNOME/libxml2
Bugs should be reported at
https://gitlab.gnome.org/GNOME/libxml2/-/issues.
Documentation is available at
https://gitlab.gnome.org/GNOME/libxml2/-/wikis
License
This code is released under the MIT License, see the Copyright file.
Security
This is open-source software written by hobbyists and maintained by
volunteers.
It's NOT recommended to use this software to process untrusted data.
There is a lot of ways that a malicious crafted xml could exploit a
hidden vulnerability in the software.
The software is provided "as is", without warranty of any kind,
express or implied. Use this software at your own risk.
To report security bugs, you can create a confidential issue with
the "security" label. We will review and work on it as a best effort.
But remember that this is a community project, maintained by volunteer
developers, so if you are concern about any important security bug
that's critical for you, feel free to collaborate and provide a patch.
The main rule is to be kind. Do not pressure developers to fix a CVE
or to work on a functionality that you need, because that won't work.
This is a community project, developers will work in the issues that
they consider interesting and when they want. All contributions are
welcome, so if something is important for you, you can always get
involved, implement it yourself and be part of the open source
community.
Build instructions
libxml2 can be built with GNU Autotools, CMake or meson.
Autotools (for POSIX systems like Linux, BSD, macOS)
If you build from a Git tree, you have to install Autotools and start
by generating the configuration files with:
./autogen.sh [configuration options]
If you build from a source tarball, extract the archive with:
tar xf libxml2-xxx.tar.gz
cd libxml2-xxx
Then you can configure and build the library:
./configure [configuration options]
make
The following options disable or enable code modules and relevant symbols:
--with-c14n Canonical XML 1.0 support (on)
--with-catalog XML Catalogs support (on)
--with-debug debugging module (on)
--with-docs Build documentation (off)
--with-history history support for xmllint shell (off)
--with-readline[=DIR] use readline in DIR for shell (off)
--with-html HTML parser (on)
--with-http ABI compatibility for removed HTTP support (off)
--with-iconv[=DIR] iconv support (on)
--with-icu ICU support (off)
--with-iso8859x ISO-8859-X support if no iconv (on)
--with-modules dynamic modules support (on)
--with-output serialization support (on)
--with-pattern xmlPattern selection interface (on)
--with-push push parser interfaces (on)
--with-python Python bindings (off)
--with-reader xmlReader parsing interface (on)
--with-regexps regular expressions support (on)
--with-relaxng RELAX NG support (on)
--with-sax1 older SAX1 interface (on)
--with-schemas XML Schemas 1.0 support (on)
--with-schematron Schematron support (off)
--with-threads multithreading support (on)
--with-thread-alloc per-thread malloc hooks (off)
--with-valid DTD validation support (on)
--with-winpath Windows path support (on for Windows)
--with-writer xmlWriter serialization interface (on)
--with-xinclude XInclude 1.0 support (on)
--with-xpath XPath 1.0 support (on)
--with-xptr XPointer support (on)
--with-zlib[=DIR] use libz in DIR (off)
Other options:
--prefix=DIR set installation prefix
--with-minimum build a minimally sized library (off)
--with-legacy maximum ABI compatibility (off)
Note that by default, no optimization options are used. You have to
enable them manually, for example with:
libxml2 supports POSIX and Windows operating systems.
The iconv function is required for conversion of character encodings.
This function is part of POSIX.1-2001. If your platform doesn't provide
iconv, you need an external libiconv library, for example
GNU libiconv. Using
ICU is also supported but discouraged.
The xmllint executable uses libreadline and libhistory if enabled.
Build requirements
Besides build system tools, only a C compiler should be required.
Reconfiguration of the Autotools build requires the pkg.m4 macro from
pkg-config. Building the documentation requires Doxygen, xsltproc and the
DocBook 4 XSLT stylesheets. Building the Python bindings requires Doxygen.
Contributing
The current version of the code can be found in GNOME's GitLab at
https://gitlab.gnome.org/GNOME/libxml2. The best way to get involved
is by creating issues and merge requests on GitLab.
All code must conform to C89 and pass the GitLab CI tests. Add regression
tests if possible.
Strict No LLM / No AI Policy
No LLMs for issues.
No LLMs for patches / pull requests.
No LLMs for comments on the bug tracker, including translation.
English is encouraged, but not required. You are welcome to post in
your native language and rely on others to have their own translation
tools of choice to interpret your words.
TopGit's last sync did not record any GitHub topics for GNOME/libxml2. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on GNOME/libxml2?
The most recent commit recorded on GNOME/libxml2 was 13 days ago, based on the GitHub push timestamp. The repository has 438 forks — one of the better signals of community interest.
Is GNOME/libxml2 open source?
TopGit's metadata for GNOME/libxml2 does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
Where can I see GNOME/libxml2 in action?
The project maintains a homepage at https://gitlab.gnome.org/GNOME/libxml2. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about GNOME/libxml2?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/GNOME/libxml2 is the definitive source.
Read full README in the tab above.
Curious whether libxml2 is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about libxml2.