Smfakhoury / everparse

Automated generation of provably secure, zero-copy parsers from format specifications

Home Page:https://project-everest.github.io/everparse

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EverParse

Linux Windows
Linux Windows

EverParse is a framework for generating verified secure parsers from DSL format specification languages. It consists of LowParse, a verified combinator library (in src/lowparse), and QuackyDucky, an untrusted message format specification language compiler.

For more information, you can read:

Download

We publish binary packages for EverParse as GitHub releases: https://github.com/project-everest/everparse/releases

Build from source

Full build instructions, including how to install dependencies, are available at https://project-everest.github.io/everparse/build.html, or equivalently in doc/build.rst in this repository.

Container Images

Instead of downloading or building EverParse, if you are in a hurry, consider using a containerized build instead, via a Docker image for Everest.

Indeed, EverParse is part of Project Everest. Everest CI maintains up-to-date Docker Images on Docker Hub for Linux. Those Docker images include a fully built and tested EverParse in the quackyducky subdirectory.

Using QuackyDucky

Example format description files

Complete TLS 1.3 message format of miTLS

Bitcoin blocks and transactions

Building

make

Running

./bin/qd.exe -help

About

Automated generation of provably secure, zero-copy parsers from format specifications

https://project-everest.github.io/everparse

License:Apache License 2.0


Languages

Language:F* 83.5%Language:OCaml 9.2%Language:Roff 2.3%Language:Makefile 1.8%Language:Shell 1.6%Language:C 1.1%Language:Dockerfile 0.3%Language:C++ 0.1%Language:PowerShell 0.1%Language:Batchfile 0.1%Language:JavaScript 0.0%