Skip to main content
BRILLIQS

BIRT

An Eclipse project providing a report designer and a Java reporting engine that applications can embed.

BIRT is an open source reporting project hosted by Eclipse. It has two parts: a designer, built as an Eclipse application, where report layouts are created, and a runtime engine written in Java that produces the output. Because the engine is a Java library, applications commonly embed it to generate their own reports.

What BIRT provides

BIRT is an open source reporting project hosted by Eclipse. It provides two things, and the split between them is the key to understanding where it fits.

A designer. An Eclipse based application where a report layout is created. It produces a design file describing the layout, the data the report needs and any logic attached to it.

A runtime engine. A Java library that takes a design file plus data and produces the finished document.

There is no requirement for a report server. That absence is the defining characteristic.

Why the embeddable engine is the point

Consider a Java application that must produce a document. An order confirmation, a delivery note, a statement.

One approach is to install a reporting server, publish reports to it and have the application call it. That is another system to deploy, secure and keep running.

BIRT's approach is to include the engine as a library. The application generates the document itself, in its own process, with no network call and no separate service.

For a product being shipped to customers, that matters a great deal. Requiring customers to run a reporting server alongside your software is a significant thing to ask. Bundling a library is not.

Designs as separate files

A report design is a file, distinct from the application's own code.

That separation is quietly valuable. Document layouts change for business reasons rather than technical ones, and often more frequently than the application around them.

Keeping the design as its own artefact means a layout change can be made and deployed without rebuilding and redeploying the application, and it can be made by somebody who works on reports rather than on the codebase.

Data sources and data sets

A design declares where its data comes from and what queries supply each part of the report.

The report is therefore self describing. It carries the knowledge of what it needs, and the engine executes those queries when the report runs, rather than the application assembling the data and passing it in.

Scripting

Layout and data settings cover most requirements. When they do not, logic can be attached to report elements.

As with any reporting tool that allows this, restraint pays off. Business logic buried inside a report design is difficult to find later, and is better placed in the application or the query where it belongs.

Who uses BIRT

BIRT is used by Java development teams that need document generation inside their own applications, and by organisations producing operational reports from Java based systems. Its users are generally developers rather than analysts, because embedding the engine is a development task.

Points to consider

It is closely tied to Java. For a team working in another language, that is decisive.

The designer being an Eclipse application is convenient for teams already using Eclipse and an additional tool for those who are not.

As with any long established open source project, checking the Eclipse project page for current release activity is worth doing before adopting it for new work.

Getting started

The Eclipse project page links to downloads and documentation covering the designer, the design file format and the runtime engine interfaces. Building a simple design against a database query and running it through the engine covers the whole path.

Key features of BIRT

Capabilities described in the official documentation.

A designer for report layouts

Reports are laid out visually in an Eclipse based designer, and saved as a design file describing the layout.

A Java runtime engine

The engine is a Java library, so it runs inside an application rather than requiring a separate report server.

Data sources and data sets

A design declares where its data comes from and which query supplies each part of the report.

Scripting inside a report

Logic can be attached to report elements for cases where layout and data settings alone are not enough.

Advantages of BIRT

Factual advantages that follow from the features above.

Reporting inside a Java application

Because the engine is a library, a Java application produces documents itself without calling another service.

Open source with no licence purchase

As an Eclipse project it can be used and distributed without a commercial licence being bought first.

Layout is separate from application code

A report design is its own file, so changing a document's appearance does not mean changing the application.

Familiar tooling for Java teams

The designer is an Eclipse application, so teams already working in that environment are not adopting a new one.

Common use cases for BIRT

Situations the official documentation describes this tool as being used for.

Software products

Documents produced by a Java application

The embedded engine generates a report at the moment the application needs it, using data it already holds.

Enterprise operations

Operational reports from an internal system

Designs are created for the standard reports a business system must produce and run against its database.

Internal tools

Adding reporting without a new platform

A library is added to an existing application rather than a reporting server being introduced alongside it.

Product development

Reports maintained separately from releases

Because a design is a file, a layout change is deployed without rebuilding the surrounding application.

Official website

Everything on this page is based on the official documentation for BIRT. You can read the source here.

BIRT official documentation

Frequently asked questions about BIRT

Answers taken from the official documentation for this tool.

Its core is a designer and a Java runtime library. There is no requirement for a separate report server, which is why it is most often embedded inside an application that needs to generate documents.

The runtime engine is a Java library, so embedding it means working in a Java environment. The designer is also an Eclipse application, which is why the project is most common among Java teams.

It is the file the designer produces, describing the layout, the data sources, the queries and any scripting. The runtime engine reads that file together with data and produces the output document.

The Eclipse project page publishes release history, downloads and current status. Checking it directly is the right step before adopting any long established open source project.