{"repo":"ysugimoto/falco","free":true,"listed":false,"github":"https://github.com/ysugimoto/falco","clone":"git clone https://github.com/ysugimoto/falco.git","description":"falco is a VCL developer tool dedicated to Fastly","language":"Go","stars":151,"topics":["linter","golang","fastly","vcl","formatter","interpreter","parser","testing","debugger"],"license":"MIT","category":"dev-tools","readme_excerpt":"Fastly VCL developer tool ---- Disclaimer This is a VCL parser, but dedicated to Fastly's VCL (version 2.x), so we don't care about the latest Varnish (7.x or later) syntax. The Varnish may have additional syntax, builtin function, predefined variables, but this tool may not parse correctly. Additionally, Fastly provides its special builtin function, predefined variables. It's not compatible with Varnish. But this tool is optimized for them, we could parse and lint/execute their declarations. Motivation Fastly is a really fantastic CDN, but sometimes we have problems with deployment operations. On deploy custom VCL to the Fastly, VCLs are validated when activating a new service version. Typically our deployment flow using custom VCLs is following: 1. Clone active service and create new version 2. Delete existing custom VCLs 3. Upload new VCL files to the Fastly 4. Activate new device version <= Validate VCLs on the Fastly cloud Above flows take a time, and then if we have some mistakes on VCL e.g. missing semicolon X(, the deployment will fail. Additionally, unnecessary service versions will be created by our trivial issue. To solve them, we made a Fastly dedicated tool to develop custom VCLs locally. Installation Download binary from releases page according to your platform and place it under the $PATH , or you can install via Homebrew: You can compile this project by yourself with: Usage Command help displays following: falco provides some useful features for developing Fas","default_branch":null,"files":null,"tree":[],"storefront":"/r/ysugimoto","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ysugimoto/falco/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}