About W3C Software

OSI Approved Open Source License

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.

All W3C software is certified Open Source/Free Software. (See the license)

gb (ghurlbot) version 0.4

2024-02-02 This new version of gb (ghurlbot) can also look up, close and reopen GitHub discussions (in addition to issues and pull requests).

(News Archive)

b6+ version 1.93

2024-10-20 The b6+ slide framework has an improved user interface for operating in two-window mode: Previously, the 2 key opened a control window, which could then be used to start a slide show in the original window. Now the 2 key opens a second window and immediately starts the slide show in that window. The original window acts as the control window, until the second window is closed.

There is no change to the operation when using a single window.

There are a few other, smaller changes:

  • When going backwards through slides, an (experimental) option allows configuring if you can also go backwards through incremental elements and if so, how. You can choose from four behaviors.
  • Style sheets that support the class “darkmode” to simulate dark mode should now signal that support in a different way.
  • When an error occurs on the connection to a sync server (used for remote control via the SSE or EventSource protocol), b6+ now assumes that the browser will try to reconnect to the server automatically. The S key stops the connection attempts.

(News Archive)

gb (ghurlbot) version 16 January 2024

2024-01-20 This new version of gb (ghurlbot) fixes a bug: The order of the repositories that gb associated with each IRC channel would change when the bot restarted and reconnected to IRC. The order is now preserved.

And gb now reads the due date in an action item slightly differently: The due date no longer needs to be at the start or the end of the issue description on GitHub, but can be anywhere in that description, as long as it is all on one line. This should make it easier for other software that reads or writes action items. As far as known, all existing action items have due dates on one line, so this should not break anything.

(News Archive)

b6+ version 1.87

2023-10-08 This version of the b6+ slide framework adds some buttons, so you don't have to remember the keys to start the slide show. When starting the slide show, b6+ now tries to enter fullscreen at the same time, rather than wait for a press of the F or F1 keys. It also adds a button and the D key to switch to dark mode (if the style sheet has rules for dark mode). Depending on the style sheet, this may or may not produce the same colors as switching the desktop to dark mode.

Some other improvements to the user interface include a close button on the popup with help text, allowing double click in the preview window to start the slide show, and leaving the slide show when the Escape key was pressed while in fullscreen.

(News Archive)

gb (ghurlbot) version 11 July 2023

2023-07-22 This new version of gb (ghurlbot) answers with a /me message if it was itself addressed with a /me message. Instead of list actions for me it now also accepts list my actions. And you can now use gb to add comments to existing issues. Some error messages and the built-in help have been improved.

(News Archive)

scribe.perl (v2) revision220

2023-07-22 This new version of scribe.perl (v2) accepts the same syntax for action items as ghurlbot, in particular it accepts actions assigned to more than one person. It also allows a new syntax for hyperlinks: [anchor](url), as in MarkDown. It fixes a bug in the link to a video recording in case a recording is started during a meeting (it linked to the wrong time stamp) and has some other small improvements.

(News Archive)

AgendaBot version of 17 July 2023

2023-07-22 A new version of AgendaBot is running (experimentally) on the W3C IRC server. This version is adapted to the new layout of the W3C group calandar. It also fixes two bugs: when asked to look for potential agenda items on a mailing list since a given number of weeks, it also looked at much older messages; and when an agenda in a calendar used a numbered list, it didn't return agenda items beyond item 9.

(News Archive)

gf-markdown-awk 0.2

2023-06-01 Version 0.2 adds support for HTML's character entities (both named entities, such as é, and numeric entities, such as é).

(News Archive)

html-xml-utils 8.6

2023-04-25 Version 8.6 of the HTML-XML-utils fixes a bug in one of the regression tests.

(News Archive)

News Archives: 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003.


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
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.
Another framework for HTML slide shows. b6+ is a script in JavaScript, which is attached to an HTML file to display the file as a series of slides. Each slide is an element (div, section or similar) with a class of slide (this format is compatible with the Shower framework), but it is also possible to just start a slide with an h1 element without wrapping the slide in an element. The slide then ends at the next h1. See the documentation (which is itself a slide show) for its other features.
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 tools consist of 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.
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.
web-platform-tests (WPT)
web-platform-tests is a W3C-coordinated effort to build a cross-browser testsuite for the majority of the Web platform. Its goal is to help achieve interoperability among different implementations.
Hcalproxy runs as a personal proxy and converts (remote) HTML with hCalendar microformat mark-up to icalendar. For example, if http://example.org/ex.html is an HTML document, then http://localhost:8000/http://example.org/ex.html is 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.
Recut is like the well-known cut utility in Unix, but it can also duplicate and reorder fields. E.g., if you do cut -f2,2,1 myfile you get fields 1 and 2 from myfile. The order is ignored and so are duplicates. But with recut -f2,2,1 myfile you get field 2, field 2 again, and field 1, in that order.
Unicorn is W3C's unified validator, which helps people improve the quality of their Web pages by performing a variety of checks. Unicorn gathers the results of the popular HTML and CSS validators, as well as other useful services.
csvtotab & tabtocsv
Csvtotab converts files of tabular data in comma-separated values (CSV) to tab-separated values, tabtocsv does the opposite. They are intended to be compliant with Model for Tabular Data and Metadata on the Web.
mail-transcode can convert e-mail messages between quoted-printable, base64 and binary encoding, which could be useful in e-mail filters.
Internationalization checker
This checker performs various tests on a Web page to determine its level of internationalization-friendliness. It also summarizes key internationalization information about a page, such as character encoding and language declarations.
AgendaBot is an IRC robot that watches a channel, looking for lines of the form agenda: URL. It tries to parse the document at that URL and extract an agenda, which it then prints on IRC. It understands a few different formats. AgendaBot is especially useful as a complement to Zakim (but doesn't depend on Zakim).
scribe.perl (v2)
scribe.perl is a Perl script that converts IRC logs (such as those made by RRSAgent, but also other IRC clients) to nicely formatted HTML. It knows about various conventions that are used by W3C groups to describe action items, agenda items, list of participants, etc.
Zakim-monitor is a (Perl) program that displays a table in a text terminal (such as an xterm or a MacOS Terminal) with the current agenda, speaker queue and open questions from an IRC channel that is managed by the Zakim IRC bot. It does that by connecting to the IRC channel and watching for messages from the Zakim bot. After each message, it updates the information displayed in the terminal.
GHURBot a.k.a “gb”
GHURLBot (for “GitHub URL Bot”) is an experimental IRC bot that usually runs under the name “gb”. It can find the URLs of GitHub issues, look up issue summaries and create new issues and action items. (An “action item” is an issue that has an assigned person and a deadline.) It does a similar job as Trackbot, but for GitHub issues, rather than Tracker issues.
A library for Awk programs that provides functions to convert GitHub-flavored markdown to HTML, to inline HTML, or to plain text.

Past Projects

Here is the list of Past Open Source Projects developed at W3C.

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:

Help Others

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.

Write code

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.

As explained below, all of W3C software source is freely available, developers are encouraged to get the source for the projects they care about and start hacking right away.

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.

Send Feedback

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

Most W3C software is available directly from our CVS base or in our Mercurial repository. You can browse the content and history of either through their respective web interfaces.

See the documentation of each software for specific instructions for download and installation.

Some software that was formerly available via FTP at ftp.w3.org has been moved to our web site.

Page maintained by W3C Systems Team and individual software authors $Date: 2024/04/26 22:26:49 $