Product — Chrysalis

Port COBOL to Rust, exactly.

Chrysalis mechanically translates COBOL source into a compiling, idiomatic Rust crate, backed by a 30-crate runtime that reproduces COBOL semantics byte-for-byte. Keep the logic you trust. Leave the platform risk behind.

pipeline — lexer → parser → sema → codegen
1* COBOL in
2OPEN OUTPUT F.
3WRITE REC FROM "HELLO".
4COMPUTE R = A ** 2 ROUNDED.
5> cobolc >
6// Rust out — uses the typed runtime, no raw bytes
7__files.open(&spec, OpenMode::Output)?.write(&rec)?;
8let r = a.checked_pow(2)?.round()?;
deterministic — identical input yields byte-identical output
Depth, not just breadth

The hard part of COBOL, handled.

COBOL-85 + IBM Enterprise COBOL

  • ✓Full procedure and data divisions; level numbers, REDEFINES, RENAMES, OCCURS, 88-conditions, COPY/REPLACE.
  • ✓Fixed-point arithmetic — exact decimal math, ROUNDED, SIZE ERROR, edited pictures, COMP/COMP-3/COMP-6.
  • ✓Tables, subscripts, SEARCH/SEARCH ALL, SORT/MERGE, STRING/UNSTRING/INSPECT.
  • ✓Files — sequential, indexed, relative, VSAM catalog — with FILE STATUS and declaratives.
  • ✓The Report Writer, PERFORM/GO TO/EVALUATE, and inter-program CALL.

The IBM ecosystem

  • ✓CICS — transactions, BMS maps, security, journaling, file & temporary storage.
  • ✓DB2 / embedded SQL — host variables, cursors, SQLCODE/SQLSTATE, COMMIT/ROLLBACK/SAVEPOINT.
  • ✓IMS/DL-I — hierarchical databases, AIB, GU/GN/ISRT/DLET/REPL.
  • ✓Language Environment (CEE*) and IBM MQ.
  • ✓z/OS (EBCDIC) and Linux x86 (ASCII) as first-class targets.
Proof, not promises

Verified, continuously.

≡

Differential testing

Every corpus program is compiled with GnuCOBOL (the reference) and with Chrysalis, then compared byte-for-byte.

♻

Fuzzing

100,000 inputs into the numeric and PICTURE parsers — zero panics.

🔐

Unsafe audit

Zero unsafe across the entire workspace, enforced in CI.

The numbers: 30 crates, 279 unit tests, 41 programs byte-for-byte, 27k lines of Rust — all green, on every commit.

Why it wins

Five guarantees, jointly required

01

Accurate

Exact arithmetic, rounding, and report editing.

02

Reliable

Deterministic; no panics; faithful rollback.

03

Secure

Memory-safe — zero unsafe.

04

Fast

Scaled-integer fixed-point core.

05

Maintainable

Idiomatic Rust a modern team can own.

→

The moat

A migration needs all five — most tools only promise one.

See Chrysalis against your own code.

Drop in a COBOL program and get a compiling Rust crate. We'll run the assessment on a real slice of your estate.

Request a codebase assessment → Browse the crates