{"id":28644628,"url":"https://github.com/zeek/spicy","last_synced_at":"2025-06-13T00:09:11.334Z","repository":{"id":37093891,"uuid":"253419417","full_name":"zeek/spicy","owner":"zeek","description":"C++ parser generator for dissecting protocols \u0026 files.","archived":false,"fork":false,"pushed_at":"2025-06-10T13:07:22.000Z","size":14749,"stargazers_count":265,"open_issues_count":89,"forks_count":42,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-06-10T13:32:30.361Z","etag":null,"topics":["parsing","security","spicy","zeek"],"latest_commit_sha":null,"homepage":"https://docs.zeek.org/projects/spicy","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zeek.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-04-06T06:59:01.000Z","updated_at":"2025-06-07T10:39:28.000Z","dependencies_parsed_at":"2023-09-22T22:38:41.199Z","dependency_job_id":"245e4575-66aa-4e67-adcc-bd6fcac0aa96","html_url":"https://github.com/zeek/spicy","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/zeek/spicy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeek%2Fspicy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeek%2Fspicy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeek%2Fspicy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeek%2Fspicy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zeek","download_url":"https://codeload.github.com/zeek/spicy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zeek%2Fspicy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259553132,"owners_count":22875612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["parsing","security","spicy","zeek"],"created_at":"2025-06-13T00:09:09.523Z","updated_at":"2025-06-13T00:09:11.277Z","avatar_url":"https://github.com/zeek.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spicy — Robust Parsers for Protocols \u0026 File Formats\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003e\u003c/th\u003e\n    \u003cth\u003eStable\u003c/th\u003e\n    \u003cth\u003eDevelopment\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eDocumentation\u003c/td\u003e\n    \u003ctd colspan=\"2\" align=\"center\"\u003e\u003ca href=\"https://docs.zeek.org/projects/spicy\"\u003eSpicy Manual\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eChangelog\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://docs.zeek.org/projects/spicy/en/latest/release-notes.html\"\u003eRelease Notes\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"/CHANGES\"\u003eCHANGES\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eBuild status\u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://cirrus-ci.com/github/zeek/spicy/release/1.13\"\u003e\u003cimg src=\"https://api.cirrus-ci.com/github/zeek/spicy.svg?branch=release/1.13\" alt=\"Build status release\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://cirrus-ci.com/github/zeek/spicy/main\"\u003e\u003cimg src=\"https://api.cirrus-ci.com/github/zeek/spicy.svg\" alt=\"Build status development\"\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Overview \u003cimg src='doc/_static/spicy-logo-square.png' align=\"right\" width=\"150\" /\u003e\n\nSpicy is a parser generator that makes it easy to create robust C++\nparsers for network protocols, file formats, and more. Spicy is a bit\nlike a \"yacc for protocols\", but it's much more than that: It's an\nall-in-one system enabling developers to write attributed grammars\nthat describe both syntax and semantics of an input format using a\nsingle, unified language. Think of Spicy as a domain-specific\nscripting language for all your parsing needs.\n\nThe Spicy toolchain turns such grammars into efficient C++ parsing\ncode that exposes an API to host applications for instantiating\nparsers, feeding them input, and retrieving their results. At runtime,\nparsing proceeds fully incrementally—and potentially highly\nconcurrently—on input streams of arbitrary size. Compilation of Spicy\nparsers takes place either just-in-time at startup (through a C++\ncompiler); or ahead-of-time either by creating pre-compiled shared\nlibraries, or by giving you generated C++ code that you can link into\nyour application.\n\nSpicy comes with a [Zeek plugin](https://github.com/zeek/zeek/tree/master/src/spicy)\nthat enables adding new protocol and file analyzers to\n[Zeek](https://www.zeek.org) without having to write any C++ code. You\ndefine the grammar, specify which Zeek events to generate, and Spicy\ntakes care of the rest. There's also a [Zeek\nanalyzers](https://github.com/zeek/spicy-analyzers) package that\nprovides Zeek with several new, Spicy-based analyzers.\n\nSee our [collection of example grammars](https://docs.zeek.org/projects/spicy/en/latest/programming/examples.html#examples)\nto get a sense of what Spicy looks like.\n\n## Installation\n\nWe provide pre-built Spicy binaries for several Linux platforms, as\nwell as a Homebrew formula (and also binaries) for installation on\nmacOS. You can also pull a Docker image from Docker Hub, or leverage\none of several included Docker files as a starting point. Of course,\nyou can also just build Spicy from source directly. See the\n[installation\ninstructions](https://docs.zeek.org/projects/spicy/en/latest/installation.html)\nfor more information on any of these options.\n\n\n## Documentation\n\nPlease read the [Spicy Manual](https://docs.zeek.org/projects/spicy),\nwhich provides the following sections:\n\n* [Installation](https://docs.zeek.org/projects/spicy/en/latest/installation.html)\n* [Getting Started](https://docs.zeek.org/projects/spicy/en/latest/getting-started.html)\n* [FAQ](https://docs.zeek.org/projects/spicy/en/latest/faq.html)\n* [Tutorial: A Real Analyzer](https://docs.zeek.org/projects/spicy/en/latest/tutorial/index.html)\n* [Programming in Spicy](https://docs.zeek.org/projects/spicy/en/latest/programming/index.html)\n* [Toolchain](https://docs.zeek.org/projects/spicy/en/latest/toolchain.html)\n* [Zeek Integration](https://docs.zeek.org/projects/spicy/en/latest/zeek.html)\n* [Custom Host Applications](https://docs.zeek.org/projects/spicy/en/latest/host-applications.html)\n* [Release Notes](https://docs.zeek.org/projects/spicy/en/latest/release-notes.html)\n* [Developer's Manual](https://docs.zeek.org/projects/spicy/en/latest/development/index.html)\n\n\n## Getting in touch\n\nHaving trouble using Spicy? Have ideas how to make Spicy better? We'd\nlike to hear from you!\n\n- Report issues on the GitHub [ticket tracker](https://github.com/zeek/spicy/issues).\n\n- Ask the `#spicy` channel [on Zeek's Slack](https://zeek.org/slack).\n\n- Check out the [Zeek community](https://community.zeek.org) and discuss Spicy under\n  the [Spicy tag](https://community.zeek.org/c/spicy/).\n\n## License\n\nSpicy is open source and released under a BSD license, which allows\nfor pretty much unrestricted use as long as you leave the license\nheader in place. You fully own any parsers that Spicy generates from\nyour grammars.\n\n\n## History\n\nSpicy was originally developed as a research prototype at the\n[International Computer Science Institute](http://www.icsi.berkeley.edu)\nwith funding from the [U.S. National Science Foundation](https://www.nsf.gov).\nSince then, Spicy has been rebuilt from the ground up by\n[Corelight](https://www.corelight.com), which has contributed the new\nimplementation to the Zeek Project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeek%2Fspicy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzeek%2Fspicy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzeek%2Fspicy/lists"}