v1.7.5 Convert your Crystal Reports files with no SAP licence and no Windows machine: 44 of 44 real reports, measured. See how →
GMR - Science in Action
GMR Reports AOT Engine

>> Science in Action

Works with the report templates you already have

Your invoices and reports, produced for you.

Connect the templates you already use and get the finished document back — PDF, Excel or Word. No rewriting your reports, and no reporting server to keep alive.

Reads your existing templates from JasperReports · Crystal Reports · Eclipse BIRT

Three steps, and the document is done

Whatever your business already sends out — invoices, statements, reports — this produces it, one at a time or a hundred thousand a month.

1

Bring the template you already have

The one your team built in JasperReports, Crystal Reports or BIRT. As it is, with its logo, its columns and its legal small print. Nobody has to redesign anything.

2

Send it the data

Your own system sends the customer, the amounts, the dates. It takes one call, and we give your developers the ready-made pieces for it.

3

Get the finished document

PDF, Excel, Word, HTML or CSV. Ready to email, to file away, or to sign. In a few thousandths of a second, so nobody is left waiting.

Coming from Crystal Reports?

Your .rpt files keep working, with no SAP licence and no Windows machine kept alive just to print. We took 44 real reports and all 44 came out the other side.

See what we measured →

What people put through it

Anything that has to come out looking the same every time, and has to be right.

Invoicing

Thousands of invoices a month, each in the layout its country's tax office expects.

Statements

The monthly account statement a bank or a fintech sends every customer, on the day it is due.

Management reports

The same reports the business already reads, produced on their own instead of by hand each month.

Documents that must be kept

PDF/A for long-term archiving, and digital signatures where the law asks for them.

Three ways to use it

The same engine underneath. What changes is how much of it you run yourself.

The API

You call, we produce

Nothing to install. Your system sends the data, the finished document comes back. We keep it running and you pay for what you use.

Right for you if you want documents coming out this week and would rather not run one more thing.

Free to try, then from $49 a month
The platform

The API, plus the screens around it

Everything in the API, and a console for managing templates, a portal for your own customers, and separation between them so each one only ever sees their own documents.

Right for you if you are not just producing your own documents, but offering them to your customers as part of your product.

From $149 a month
The engine

The same software, on your own machines

Installed inside your own application or as a container in your data centre. Your data never leaves the building, and it works with no connection to the outside world at all.

Right for you if the rules you work under, or your own, say the documents cannot leave your premises — banking, government, healthcare.

Annual licence
See the prices →

Your templates are the same in all three, so starting on the API and moving in-house later costs you no rework.

Plataforma Cloud & Licenciamiento On-Premise

Planes Simples y Transparentes para Cada Escala

Desde APIs serverless de alta velocidad hasta componentes Java/Quarkus embebidos para banca y redes aisladas.

GMR Cloud SaaS — Multi-Tenant Managed APIs
Developer Free
$0 / mes

Para evaluación técnica y microservicios locales.

  • ✓ 1,500 documentos / mes
  • ✓ 60 req/min (ráfaga 10)
  • ✓ Studio Sandbox Web UI
  • ✓ Imágenes Docker multi-arquitectura
  • ✓ Soporte Comunitario en GitHub
Probar en Sandbox
Launch
$49 / mes
$39/mes facturado anualmente

Para MVPs, startups y aplicaciones de facturación ágil.

  • ✓ 25,000 documentos / mes
  • ✓ 150 req/min (ráfaga 25)
  • ✓ $0.0025 / doc extra
  • ✓ Claves API ilimitadas
  • ✓ Alertas vía Webhook & Soporte por email
Más Popular
Growth
$149 / mes
$119/mes facturado anualmente

Para fintechs en crecimiento y plataformas SaaS multi-inquilino.

  • ✓ 100,000 documentos / mes
  • ✓ 400 req/min (ráfaga 60)
  • ✓ $0.0018 / doc extra
  • ✓ Multi-Tenancy & Fuentes tipográficas
  • ✓ Cero Retención de Datos (ZDR) & SLA 99.9%
Scale
$499 / mes
$399/mes facturado anualmente

Para proveedores autorizados de certificación (PACs) y gran volumen.

  • ✓ 500,000 documentos / mes
  • ✓ 1,000 req/min (ráfaga 150)
  • ✓ $0.0012 / doc extra
  • ✓ SLA 99.9% Uptime garantizado
  • ✓ Soporte 24/7 y Onboarding Dedicado
🏢 Licenciamiento de Componentes On-Premise

Librerías Embebidas, Contenedores y Núcleo Air-Gapped

Diseñado para Core Banking, entidades gubernamentales y centros de datos que requieren procesamiento local sin salida a internet (ZDR estricto, FIPS 140-2 y firma digital PAdES).

Guía Técnica y Legal de Licencias ↗
Microservicios / Servidor Único
Starter On-Prem
$4,800 USD / año
$400/mes facturado anualmente
  • ✓ Hasta 4 Cores CPU (1 JVM / Contenedor Nativo)
  • ✓ Librería gmr-reports-spring-boot-starter
  • ✓ Generación PDF/A y compresión nativa
  • ✓ Soporte para plantillas dinámicas XSL-FO y JRXML
  • ✓ Parches de seguridad y releases menores por 1 año
Recomendado Banca
Kubernetes & OpenShift Clúster
Cluster Enterprise HA
$12,500 USD / año
$1,040/mes facturado anualmente
  • ✓ Hasta 16 Cores CPU (Despliegue multi-pod HA)
  • ✓ Sincronización de clúster distribuido (Redis / Hazelcast)
  • ✓ Conectores nativos a Oracle, PostgreSQL, SQL Server, DB2
  • ✓ Auditoría criptográfica Cero Retención (ZDR)
  • ✓ Soporte técnico directo L-V (SLA de respuesta < 4h)
Misión Crítica & Core Banking
Corporate Unlimited
$24,000 USD / año
Opción Perpetua: $45,000 USD único
  • ✓ Nodos y Cores CPU Ilimitados (incluye Disaster Recovery)
  • ✓ Firma Digital PAdES con HSM (FIPS 140-2 Level 3)
  • ✓ 100% Air-Gapped sin telemetría externa
  • ✓ Código fuente de referencia & asistencia de arquitectura
  • ✓ Soporte 24/7 de Severidad 1 (SLA < 1h)

Measured in Production

What a Native Reporting Engine Actually Costs to Run

Figures read from our own production pods on Kubernetes (OCI OKE, ARM64 Ampere A1). Method and raw readings are published.

Cold Start Duration
< 300 ms cold, native AOT
Measured on: 5 pods, OCI OKE ARM64
⚡ 0.134–0.149 s across three pods
Container RAM Footprint
~82 MB Distroless
Measured on: cgroup memory.current
📉 What kubectl top reports
P99 Rendering Latency
2.2 ms p99, per document
Measured on: 500 renders, GraalVM 25
🚀 Rendering itself is 1–3 ms
Dynamic Code CVEs
Zero Deterministic AST
Expressions: No dynamic compilation
🛡️ Sandboxed arithmetic

Measured Conformance

We publish our compatibility figures, and how we got them

“100% compatible” is a claim. These are measurements, each reproducible by one command, run in CI on every commit. Including the one that is not 100%.

Feature suites
JasperReports 48/48
Eclipse BIRT 21/21
Crystal Reports 30/30

One case per feature, each classed supported, ignored or rejected. The middle one is the one that matters: the template renders without error and the content is missing in silence. We wrote these cases, so 100% here is necessary and not sufficient.

Real BIRT designs, written by others
96% of template text reaches the page
Designs60
Parse60/60
Render59/60

The Eclipse project’s own sample designs. The one that does not render uses sum as an expression function, which this engine will not evaluate — it runs a fixed set of operations and no arbitrary code, deliberately.

Real SAP reports, from the binary .rpt
44/44 convert and render
Objects recovered2438/2438
Text reaching the PDF81%

The reports SAP ships with Business One, interpreted from the proprietary binary with no SAP software anywhere. 81% and not 96%: the six missing strings are all in two budget reports, formula placeholders clipped by boxes their designer sized for the short value the formula resolves to. In the other forty-two, every string reaches the page.

Cloud ROI Estimator

Calculate Your Kubernetes Infrastructure Savings

See how much you save on AWS EKS / GCP GKE compute nodes by ditching JVM bloat.

Monthly Document Volume: 1,000,000 docs
50k 2.5M 5M 10M+
Current JasperReports Replicas (Pods): 12 pods
2 pods 25 pods 50 pods
RAM Allocated per Pod: 1.5 GB
512 MB 2.0 GB 4.0 GB
Estimated Annual Cloud Savings
$5,592 / yr
🎉 89.9% Infrastructure Cost Reduction
Current Legacy Cloud Spend: $518 / mo
GMR Reports Cloud Spend: $52 / mo
Test in Sandbox →

Architectural Advantage

Engineered for Zero-Downtime Microservices

Direct drop-in replacement for legacy reporting engines without rewriting your business templates.

🎯

Deterministic AST Evaluator

Report expressions are evaluated by a parser with a fixed set of operations. No Groovy, no bytecode generated at runtime, nothing reflected into arbitrary classes.

⚡

Sub-Millisecond AOT Compilation

Templates are pre-compiled to a reflection-free binary at build time, so the first render does not pay for parsing the XML.

🔌

Universal Multi-Engine Support

Runs JasperReports (.jrxml) and Eclipse BIRT (.rptdesign) as they are. A binary Crystal Reports .rpt is converted server-side by the Migration Toolkit, with nothing to install: 44 of 44 across the reports SAP ships with Business One.

🛡️

Last-Known-Good Resilience

If a broken template is published, the engine keeps serving the last version that compiled rather than failing the request.

☸️

Cache Synchronised Across Replicas

Compiled templates are shared between pods through Redis, or a shared volume when self-hosted, so an edit made on one replica reaches the rest.

🔒

Zero-Data Retention

Documents are rendered in memory and streamed back. The data you send to be rendered is not written to disk.

🏢

Isolated Multi-Tenant Architecture

Credentials per tenant, token-bucket rate limiting, and monthly quota counted in PostgreSQL so every replica enforces the same allowance.

📦

Python, TypeScript and .NET SDKs

One render call in each. The report type and the output format are arguments rather than separate methods, so a new report type needs no new SDK release.

▦

Vectorial Barcodes and QR Codes

ZXing drawn straight into PDF vectors. No AWT, no X11, nothing in the container that expects a desktop.

📊

Streaming Excel (FastExcel)

Generates .xlsx through streaming ZIP compression, so a large workbook does not turn into an OutOfMemoryError.

🚢

Helm Chart and Kubernetes Operator

A Helm chart for the engine, plus CRDs for report clusters and for templates.

Documentation Hub

Get Started in Under 60 Seconds

Or run the whole engine on your own machine, right now:

$ docker run -p 8080:8080 ghcr.io/gmreserarch-io/gmr-reports:latest
Spring Boot 3 Starter Integration

Add our official starter to your Maven or Gradle build for automatic bean configuration:

<dependency>
    <groupId>com.gmr.reports</groupId>
    <artifactId>gmr-reports-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>
Inject service bean into your controller:
@RestController
public class InvoiceController {

    @Autowired
    private GmrSpringReportService reportService;

    @GetMapping("/invoice.pdf")
    public ResponseEntity<byte[]> getInvoice() throws Exception {
        byte[] pdf = reportService.renderPdf("invoice", params, items);
        return ResponseEntity.ok().contentType(MediaType.APPLICATION_PDF).body(pdf);
    }
}

Frequently Asked Questions

Technical & Licensing Inquiries

Do we need to rewrite our existing JasperReports templates? ▼

No. GMR Reports was explicitly engineered to ingest standard .jrxml files generated by Jaspersoft Studio. Bands, expressions, parameters, totals, and barcodes render drop-in without template redesign.

How does the Last-Known-Good Fallback protect production? ▼

If a corrupted or invalid XML template is uploaded to a shared volume or hot-reloaded during live operations, GMR Reports detects the parsing failure, raises an alert, and seamlessly continues serving the last valid compiled version in memory. Production document flows never crash.

Can we deploy on Oracle Cloud (OCI), AWS Graviton, and Apple Silicon? ▼

Yes! Our official Docker images on GHCR are multi-architecture (linux/amd64 and linux/arm64). In fact, GMR Reports can run in the OCI Always Free tier consuming less than 1% of the allocated 24GB RAM.

What is the difference between Community and Enterprise licensing? ▼

The Community Edition is free for evaluation and development with public artifacts on Maven Central. The Enterprise Edition provides air-gapped self-hosted Kubernetes Helm licenses, unlimited rendering, Redis/Hazelcast cluster sync, FIPS/banking compliance, and 24/7 dedicated engineering SLAs.