About W3C Software
The natural complement to W3C specifications is running code. Implementation and testing is an essential part of specification development and releasing the code promotes exchange of ideas in the developer community.
26 May 2010: Version 0.8 of xmptool adds an option -c (“clean-up”) to remove redundant properties from an XMP file. If a property has a Bag or an Alt containing values in different languages, and the value in some of those languages is the same as the default value, then those languages are removed. E.g., if the property is
<relation> <rdf:Bag> <rdf:li xml:lang="x-default">Berlin</rdf:li> <rdf:li xml:lang="de">Berlin</rdf:li> </rdf:Bag> <relation>
then the value in German (lang=“de”) is redundant and the property can be simplified to:
26 April 2010: Version 5.6 of
the HTML/XML utilities fixes a
hxincl and changes
hxref to put the A
element around instead of inside the element that needs to
become a cross-reference. See
the ChangeLog for
eot-utils 1.0 as tar file
28 January 2010: The first version of the eot-utils contains mkeot, which creates EOT (Embedded OpenType) files, and eotinfo, which displays the contents of an EOT header in a readable way. Both programs are functional, but eotinfo doesn't yet show all of the information in the header. (News Archive)
16 July 2009: Version 5.4 of the HTML/XML utilities fixes some bugs,
including an incorrect mapping of relative to absolute URLs in some
hxincl now has an option
override which files are includes.
hxnormalize no longer
has a limit on the line length of its output. See the ChangeLog for details. (News
Amaya 11.2 released
Link Checker 4.5
- Browse, Parse, View
- Authoring tools
- Validation, lint
- Manipulation, Libraries
Browse W3C's Open Source Software
- Amaya - a Web browser/editor
- First released Feb '97, Amaya is not just a browser, but a hypertext editor. It's a test-bed for the design of embedded objects, stylesheets, math, structured graphics, and more.
- Apache patches
- Our contributions to the Apache HTTP server cover bug patches and extensions to the HTTP perl test framework as needed. We have applied all of these patches to our production servers.
- Charlint, aka "Charlie", is a perl script that allows you to validate or normalize Unicode (UTF-8) data according to the Character Model for the World Wide Web W3C Working Draft.
- CSS Validator
- The W3C CSS Validation Service, also known as CSS validator, is a popular free online service to find problems in CSS style sheets used by your HTML pages. The CSS Validator is also available for download.
- Cwm is a general-purpose data processor for the semantic web. It is a forward chaining reasoner which can be used for querying, checking, transforming and filtering information. Its core language is RDF, extended to include rules, and it uses RDF/XML or N3 serializations as required.
- A Conversion Tool from DTD to XML Schema
- eot-utils [CVS, tar files]
- The eot-utils are the two programs mkeot and eotinfo. The former creates an EOT (Embedded OpenType) file from an OpenType or TrueType font and the URLs of one or more Web pages. Unlike Microsoft's WEFT, mkeot is a command-line utility. mkeot doesn't subset a font and doesn't currently compress the font data. mkeot respects the TrueType “embedding bits.” The eotinfo program displays the contents of an EOT header in a human-readable way. The programs were tested on Linux (Debian 5 “Lenny”) and Mac OS X (10.5 “Snow Leopard”) but are expected to work on more systems.
- HTML Slidy
- A Web-based framework for creating accessible slide shows with simple markup, and operated like Microsoft PowerPoint. Each presentation is marked up as a single document with links to the slideshow style sheet and script. Each slide is enclosed in a div element with class="slide". The framework includes support for handout notes, incrementally revealing bullet points and graphics overlays, different backgrounds for different slides (div's with class="background"), and guidance on using SVG for anti-aliased graphics that scale with the window size.
- HTML Tidy
- HTML TIDY is a free utility for fixing HTML mistakes automatically and tidying up sloppy editing into nicely laid out markup. It also works great on the atrociously hard to read markup generated by some specialized HTML editors and conversion tools, and can help you identify where you need to pay further attention to making your pages more accessible to people with disabilities. Tidy further provides a simple way to convert HTML to well formed XML, see WD-html-in-xml.
- A number of simple C programs for manipulating HTML & XML: number headings, make a table of contents, make an index, manage bibliographic references (a simple implementation of refer(1) for HTML), list all links, create cross-references, extract elements that match a (CSS) selector, etc. Most are meant to be used in a Unix pipe or in shell scripts.
- Ical2html - tools for icalendar files
- The package contains three programs: ical2html reads an iCalendar (.ics) file, extracts all events between certain dates and of certain categories and creates an HTML page with monthly calendars; Icalfilter filters out events of a given category; icalmerge merges two or more iCalendar files, keeping only the most recent versions of duplicate events. See also the development version in CVS.
- IsaViz is a visual environment for browsing and authoring RDF models represented as graphs.
- Jigsaw - the Advanced Web Server
- In June 1996, the release of Jigsaw demonstrated object-oriented web server design, written in Java. While it supports HTTP 1.1, traditional file-based resources, and CGI, its strength lies in its resource-based architecture. On this architecture, it supports advanced proxy caching features including ICP, Servlets, PICS, collaborative authoring, and more.
- Libwww - the W3C Protocol Library
- Libwww is a highly modular, general-purpose client side Web API written in C for Unix and Windows (Win32). It's well suited for both small and large applications. Pluggable modules provided with libwww include complete HTTP/1.1 (with caching, pipelining, PUT, POST, Digest Authentication, deflate, etc.), MySQL logging, FTP, HTML/4, XML (expat), RDF (SiRPAC), and much more. The purpose of libwww is to serve as a testbed for protocol experiments.
- Note: In addition to the W3C Software License, libwww is covered by a specific notice, which includes CERN.
- Link Checker
- The W3C Link Checker checks that all the links in your HTML document are valid. There is a command-line interface and an online version. The Link Checker can easily be installed on one's server.
- Log Validator
- The Log Validator is a web server log analysis and validation tool: it can help web content managers find and fix the most frequently accessed invalid documents on their Web site. It is based on a flexible perl library that can be used to process lists of Web documents for validation or other tasks.
- Markup Validation Service
- The W3C Markup Validation Service, also known simply as “HTML Validator” is a free online service that helps check Web documents in languages such as HTML, XHTML, SVG, MathML, etc. Its source code is also available, and it is relatively easy to install on a number of platforms.
- mobileOK checker library
- The W3C mobileOK checker Java library helps building applications that can assess whether a Web page is mobileOK Basic, highlighting potential problems it would have to be used on a mobile device (such as a phone or a PDA). It serves as a successor to the mobile web best practices checker.
- RDFPic is a tool to embed an RDF description of a picture into the picture itself, as described by Describing and retrieving photos using RDF and HTTP. The version in CVS supports XMP.
- RDF Validator
- The RDF Validator checks the syntax of RDF documents, and can produce a graph of any RDF data. Its java code can run as a java servlet with jetty, tomcat or Jigsaw. Installation instructions for Jetty or Tomcat are available on the ESW Wiki.
- XSV is a validator for W3C XML Schema, available both for download in source and executable formats, and online.
- Hcalproxy runs as a personal proxy and converts (remote) HTML
hCalendar microformat mark-up to icalendar. For
http://example.org/ex.htmlis an HTML document, then
http://localhost:8000/http://example.org/ex.htmlis an icalendar document with all events from that HTML document.
- rdjpgxmp, wrjpgxmp, xmptool
- rdjpgxmp and wrjpgxmp extract and insert XMP data in JPEG (JFIF) files. xmptool can print the value of a particular property in an XMP file, delete a property from an XMP file, or insert a property/value pair into an XMP file.
- Arena - a Style Sheets enabled Browser
- In 1994, Arena demonstrated the feasibility of tables and math in HTML. In 1995, it began to popularize style sheets. In 1997, W3C development efforts began to focus on Amaya and Arena development moved to Yggdrasil.
- BIND patches
- Patches to the domain name resolver BIND that we use to rotate www.w3.org to different mirrors around the world according to the IP address of the user. Released August 1999.
- CERN Server
- The original, first generation HTTP server which some call the Volkswagen of the Web. Development is now discontinued and focus is instead on the modern Jigsaw server.
- ETA - Event Tracking Agent
- ETA is a database-backed issue tracking system written in PHP3. Source code is available from our public CVS repository.
- Libxml - The Gnome/W3C XMLlibrary
- Libxml was originally developed by Daniel Veillard while working for W3C; it has been in development - mostly as the library for the Gnome project - since 1998. The release 2.0 provides a C toolkit to parse, validate (with XML-1.0 DTDs) and save XML files. It provides flexible I/O interfaces (including basic FTP and HTTP modules), supports pull and push modes, and offers either a C version of the SAX interface or builds a DOM suitable tree. It also supports HTML and provides a version of XPath and XPointer.
- Metalog is a reasoning tool for the Semantic Web. Metalog has been designed as a showcase to finally make reasoning and thinking about the Web easy for the people. It offers advanced reasoning/query capabilities, together with a pseudo natural language (PNL) interface that is extremely easy and natural to understand.
- SiRPAC - Simple RDF Parser & Compiler
- Having trouble getting your head around Metadata? Parse, check, and visualize RDF. Released July 1998. W3C stopped maintaining this parser in June 2001.
- This is a Perl script generating HTML slides. It is available from the CVS tree.
- The webbot is a very fast Web walker with support for regular expressions, SQL logging facilities, and many other features. It can be used to check links, find bad HTML, map out a Web site, download images, etc. Webbot is part of the libwww codebase.
- Web Commander
- A Win32 application for getting, saving, and deleting documents remotely using HTTP/1.1. It allows the user to explicitly control the metadata describing the document to save the language, type, charset, etc. Web Commander is part of the libwww codebase. Check the screenshots!
- WebCon is a simple Web console tool that allows you to perform any HTTP operation automatically like posting data, saving data, deleting documents, etc. The WebCon comes with the libwww codebase.
- Winie is the Java version (and a superset) of Web Commander. It uses Jigsaw's HTTP/1.1 API.
Get involved! Contribute to W3C Open-Source Software
W3C software is free and open source: the software is made primarily by people of the Web community, for the Web community.
There are many ways to get involved:
Great communities make great tools, and with only a few minutes of your time you can join the mailing-lists associated with W3C open source projects (such as www-validator for the markup validator or www-validator-css for the CSS validator) and participate in discussions and user support.
A lot of W3C software have a specific user discussion mailing-list (see each projects for details), some also have IRC (chat) channels, such as the #validator channel on the irc.freenode.net for discussions on W3C validation services.
Developers are welcome to get involved by contributing code. either to existing projects (see list above and check each project's documentation for contact e-mail information), or proposed future software. Patches and bug fixes are always welcome, and developers willing to get seriously involved will generally get commit access after a proving period.
Read the IPR FAQ on software contribution if you intend to contribute code. Note that as this license is GPL compatible, it is possible to redistribute software based on W3C sources under a GPL license.
Code is not the only way to get involved in making W3C software better. Testing, bug reports, suggestions, or help in creating good documentation are equally important! Most project will have a Feedback page, and you can report bugs, test cases and patches on our Bugzilla.
All the tools listed on this page are free and open source, but hosting, maintaining and developing them often costs a lot. With your support through the Validator Donation Program or the W3C Supporters Program, we can build even better tools.
Download and Check source code
See the documentation of each software for specific instructions for download and installation.
Some of our software is available via FTP from ftp.w3.org.