Skip to content

uwplse/cheerios

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cheerios

Docker CI

A formally verified serialization library for Coq which defines a typeclass for serializable types and instances for many standard library types.

Meta

  • Author(s):
    • Justin Adsuara
    • Karl Palmskog
    • Keith Simmons (initial)
    • James R. Wilcox (initial)
    • Doug Woos (initial)
  • License: BSD 2-Clause "Simplified" license
  • Compatible Coq versions: 8.14 or later
  • Additional dependencies:
  • Coq namespace: Cheerios
  • Related publication(s): none

Building and installation instructions

The easiest way to build and install the Cheerios Coq library is via opam:

opam repo add coq-extra-dev https://coq.inria.fr/opam/extra-dev
opam install coq-cheerios

To instead build and install manually, do:

git clone https://github.com/uwplse/cheerios.git
cd cheerios
make   # or make -j <number-of-cores-on-your-machine> 
make install

To use serializable types in executable programs, code must be extracted to OCaml and linked with the Cheerios runtime library. The connection between the Coq definitions and the runtime library primitives is established in ExtractOCamlCheeriosBasic.v in the extraction directory, which must be imported before extraction of serializable types.

To build and install the OCaml runtime library:

opam pin add cheerios-runtime -k git https://github.com/uwplse/cheerios.git

To compile the runtime library manually, go to the runtime directory and run make (requires OCamlbuild).

About

Formally verified Coq serialization library with support for extraction to OCaml

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published