Labels for your RDF, served from a CDN.

Every RDF app resolves IRI → label endlessly - for predicates, classes and entities. Do it once from a globally edge-cached CDN: rdfs:label, skos:prefLabel, schema:name and your own IRIs, resolved at the edge and never from your triplestore.

Deploy your own

Watch the IRIs resolve

RDF Label Cache allows you to serve labels from the Cloudflare CDN. Rendering them is up to your app; it ships no rendering library.

Try it with your own RDF - open the playground

Why not just… ?

RDF Label Cache compared to four common ways apps obtain labels today.

ApproachStale?Hits the KG?Shared?
RDF Label Cache (edge CDN)TTL + purge policyneverat the edge
Hard-coded label tableyesnono
Label joins in every querynoheavilyno
Follow-up label querynoevery timeno
Shadow "label" named graphsdriftsyesno

Free and open source (Apache-2.0), self-hosted on your own Cloudflare account. Reusable entries are served from the tiered edge cache without invoking the Worker or reading R2.

Read the full write-up - cost, latency & the shared-cache model

Deploy your own

Three moves, whichever path you take. It ships empty; you populate R2 once with your own IRIs and any ontologies you reference (Schema.org, DCAT etc.)

1

Deploy the Worker + R2 bucket

One click with the Deploy to Cloudflare button, or one command from a clone. Comes up empty — every /label 404s until you seed.

2

Get your labels

Drop RDF into the labels/ folder, or CONSTRUCT them from your triplestore — only label & description triples are kept.

3

Load them into R2

A browser GitHub Action for vocabularies & small/modest sets, or the local just pipeline for large sets & frequent refreshes.

The GitHub Action path re-runs as an upsert, not a mirror, and suits small/modest RDF. For large label sets or more robust sync, use the clone + pipeline path.

Full guide - every command, copy-paste ready

What it costs to run

It runs in your Cloudflare account, on your plan. Nothing is billed by this project.

free tier

Most deployments

Workers Free covers 100k requests/day, and R2 has its own monthly storage and operation allowances.

10M/month

If you outgrow it

Cloudflare's paid plans lift the limits at low rates - 10 million requests included, then cents per million, plus billable CPU where applicable.

Cost, latency & the shared-cache model in detail