Watch
2
0
Fork
You've already forked cedarbridge
0
Cedarbridge message protocol specification language
  • Java 99.1%
  • CSS 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Mark Raynsford 6adeff662f
Some checks are pending
main-RHEL10-x86_64-jdk25 / Build (push) Waiting to run
main-RHEL10-x86_64-jdk26 / Build (push) Waiting to run
main-RHEL9-x86_64-jdk25 / Build (push) Waiting to run
main-RHEL9-x86_64-jdk26 / Build (push) Waiting to run
Update workflows.
2026-07-31 18:42:50 +01:00
.forgejo Update workflows. 2026-07-31 18:42:50 +01:00
com.io7m.cedarbridge.bridgedoc.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.bridgedoc.spi Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.bridgedoc.xhtml Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.cmdline Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.codegen.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.codegen.javastatic Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.codegen.spi Begin next development iteration. 2024-05-10 19:30:14 +00:00
com.io7m.cedarbridge.documentation Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.errors Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.examples Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.exprsrc Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.exprsrc.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.maven_plugin Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.runtime.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.runtime.bssio Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.runtime.container_protocol Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.runtime.convenience Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.runtime.time Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.ast Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.binder Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.binder.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.compiled Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.compiler Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.compiler.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.core_types Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.loader.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.names Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.parser Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.parser.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.time Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.typer Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.schema.typer.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.specification Update workflows, fix documentation generation, add doc7m. 2026-07-13 20:05:17 +01:00
com.io7m.cedarbridge.strings.api Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.tests Reformat sources. 2026-07-13 20:08:20 +01:00
com.io7m.cedarbridge.version Reformat sources. 2026-07-13 20:08:20 +01:00
src/site/resources Update site metadata. 2025-08-09 15:06:38 +00:00
.gitignore Update .gitignore. 2024-05-07 16:01:40 +00:00
.gitmodules Move to new organization. 2024-04-28 19:51:04 +00:00
checkstyle-filter.xml Add missing Checkstyle configuration files 2022-09-29 12:04:31 +00:00
checkstyle-suppressions-1.0.dtd Add missing Checkstyle configuration files 2022-09-29 12:04:31 +00:00
doc7m-books.json Update workflows, fix documentation generation, add doc7m. 2026-07-13 20:05:17 +01:00
pom.xml Update primogenitor. 2026-07-13 20:09:34 +01:00
README-CHANGES.xml Mark release 2.0.0 2024-05-10 19:29:36 +00:00
README-LICENSE.txt Update LICENSE 2023-08-13 21:16:11 +00:00
README.in Migrate project. 2026-06-27 10:06:00 +01:00
README.md Migrate project. 2026-06-27 10:06:00 +01:00

cedarbridge

Maven Central Maven Central (snapshot) Java Version

com.io7m.cedarbridge

cedarbridge

The cedarbridge package implements an efficient, strongly-typed, platform-independent, binary message protocol language based around sum and product types, and strong versioning.

[documentation ChatCommandJoin "Join the chat room."]
[record ChatCommandJoin
  [field name cb:String]
  [documentation name "The username with which to join."]]

[documentation Chat "The chat protocol."]
[protocol Chat
  [version 1
    [types-added
      ChatCommandJoin
      ChatCommandSpeak
      ChatEventJoined
      ChatEventLeft
      ChatEventSpoke
      ChatEventError]]]

...

Features

  • A carefully written language specification.
  • A minimal data definition language based on algebraic sum and product types.
  • Strong versioning as a core aspect of the language.
  • A small, easily auditable codebase with a heavy use of modularity for correctness.
  • Generates simple, readable, reflection-free Java code.
  • A small footprint; the generated Java code consists of trivial record definitions and incredibly simple and straightforward code to serialize and deserialize values.
  • Platform independence. No platform-dependent code is included in any form.
  • Suitable for use in security-critical environments: Serialization code is immune to the usual serialization vulnerabilities such as type confusion, resource exhaustion, exponential parse times, and etc.
  • An extensive automated test suite with high coverage.
  • OSGi-ready.
  • JPMS-ready.
  • ISC license.

Usage

See the documentation and language specification.