{"id":51168071,"url":"https://github.com/pavelbohovin/awk-log-parser","last_synced_at":"2026-06-26T21:30:45.739Z","repository":{"id":359446552,"uuid":"1246127485","full_name":"pavelbohovin/awk-log-parser","owner":"pavelbohovin","description":"Local-first AWK-powered log parser for Apache and Nginx logs.","archived":false,"fork":false,"pushed_at":"2026-05-22T07:34:13.000Z","size":949,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T07:51:10.254Z","etag":null,"topics":["apache","apache-logs","awk","awk-parser","awk-wasm","browser-based","devops","log-analysis","log-parser","nginx","nginx-logs","observability","privacy-first","server-logs","vanilla-js","wasm","webassembly"],"latest_commit_sha":null,"homepage":"https://awk.developer-pro.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pavelbohovin.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-21T22:42:26.000Z","updated_at":"2026-05-22T07:34:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pavelbohovin/awk-log-parser","commit_stats":null,"previous_names":["pavelbohovin/awk-log-parser"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/pavelbohovin/awk-log-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelbohovin%2Fawk-log-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelbohovin%2Fawk-log-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelbohovin%2Fawk-log-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelbohovin%2Fawk-log-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pavelbohovin","download_url":"https://codeload.github.com/pavelbohovin/awk-log-parser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pavelbohovin%2Fawk-log-parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34834415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["apache","apache-logs","awk","awk-parser","awk-wasm","browser-based","devops","log-analysis","log-parser","nginx","nginx-logs","observability","privacy-first","server-logs","vanilla-js","wasm","webassembly"],"created_at":"2026-06-26T21:30:44.135Z","updated_at":"2026-06-26T21:30:45.732Z","avatar_url":"https://github.com/pavelbohovin.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWK Log Parser\n\n**Parse Apache and Nginx access logs directly in your browser with AWK-powered analysis.**\n\n[![Live Demo](https://img.shields.io/badge/Live%20Demo-awk.developer--pro.com-16c2d5?style=for-the-badge)](https://awk.developer-pro.com/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](LICENSE)\n\nAWK Log Parser is a static, browser-based log analysis tool for Apache and Nginx access logs. It helps developers and sysadmins inspect access logs locally, run predefined analysis presets, and execute real AWK scripts in the browser through WebAssembly.\n\nNo backend. No uploads. No tracking by the app itself.\n\n## Screenshot\n\n![AWK Log Parser — home screen](assets/img/screenshot.png)\n\n## Why Use It?\n\nProduction access logs often contain sensitive IPs, URLs, user agents, and operational details. AWK Log Parser keeps that data on your machine while still giving you fast, familiar log analysis workflows in a clean web UI.\n\n## Features\n\n- Browser-based log parsing\n- Real AWK execution through WebAssembly\n- Apache/Nginx access log support\n- Prebuilt analysis scripts and quick presets\n- CSV export\n- No backend\n- No file uploads\n- Privacy-first local processing\n- Works as a static website\n- JavaScript parser fallback for combined Apache/Nginx logs\n- Web Worker-based processing for a more responsive UI\n- Hash-routed sections for Home, Workspace, Analytics, and Docs\n- Included sample log for quick testing\n- Responsive dark terminal-style interface\n\n## Privacy First\n\nYour logs stay local:\n\n- Log files are processed in your browser\n- Files are not uploaded anywhere\n- No server-side processing is required\n- No tracking by the app itself\n- AWK execution, when enabled, also runs locally in a Web Worker\n\n## Live Demo\n\nOpen the hosted version here:\n\n[https://awk.developer-pro.com/](https://awk.developer-pro.com/)\n\n## Quick Start\n\nClone the repository and serve it as static files:\n\n```bash\ngit clone https://github.com/pavelbohovin/awk-log-parser.git\ncd awk-log-parser\npython3 -m http.server 8080\n```\n\nThen open:\n\n[http://127.0.0.1:8080/](http://127.0.0.1:8080/)\n\nYou can open `index.html` directly in a browser for simple viewing, but a local HTTP server is recommended because Web Workers and WebAssembly loading may not work reliably from `file://` URLs.\n\n## Usage\n\n1. Open the app in your browser.\n2. Choose a log file, drag and drop one, or load the included sample log.\n3. Select an analysis preset or switch to the AWK WASM engine.\n4. Run the parser.\n5. Review summary stats, tables, and AWK output.\n6. Export CSV results when needed.\n\n## AWK + WebAssembly\n\nThe app includes a real AWK engine compiled to WebAssembly:\n\n- `assets/wasm/awk.js`\n- `assets/wasm/awk.wasm`\n\nWhen the AWK engine is selected, scripts run inside the browser through a Web Worker. This allows real AWK-style parsing without sending logs to a server.\n\nThe WebAssembly build is based on [One True Awk](https://github.com/onetrueawk/awk). See the [AWK WebAssembly build notes](assets/wasm/README.md) for build and troubleshooting details.\n\n## Supported Log Formats\n\nAWK Log Parser is designed for common Apache and Nginx access log workflows, especially combined/common-style access logs.\n\nThe JavaScript parser targets combined Apache/Nginx access log lines. Custom AWK scripts can handle additional layouts, but the app does not attempt to fully validate every possible server log format.\n\n## Project Structure\n\n```text\n.\n├── index.html\n├── assets/\n│   ├── css/\n│   │   └── styles.css\n│   ├── js/\n│   │   ├── app.js\n│   │   ├── awk-examples.js\n│   │   ├── awk-wasm.js\n│   │   ├── parser.worker.js\n│   │   ├── presets.js\n│   │   └── sample-log.js\n│   ├── img/\n│   │   ├── screenshot.png\n│   │   └── servers.png\n│   └── wasm/\n│       ├── awk.js\n│       ├── awk.wasm\n│       └── README.md\n├── sample-access.log\n├── test-data/\n│   └── sample-access.log\n└── tools/\n    ├── build-awk-wasm.sh\n    └── test-awk-wasm-local.md\n```\n\n## Development\n\nThis is a vanilla HTML/CSS/JavaScript app. There is no backend and no required build step for everyday development.\n\nRun it locally with any static file server:\n\n```bash\npython3 -m http.server 8080\n```\n\nThen open [http://127.0.0.1:8080/](http://127.0.0.1:8080/).\n\nIf you need to rebuild the AWK WebAssembly files, use the helper script documented in [assets/wasm/README.md](assets/wasm/README.md):\n\n```bash\nchmod +x tools/build-awk-wasm.sh\n./tools/build-awk-wasm.sh\n```\n\n## Deployment\n\nBecause the project is static, it can be deployed to:\n\n- GitHub Pages\n- Netlify\n- Cloudflare Pages\n- Any static hosting provider\n- Caddy, Nginx, or Apache as static files\n\nMake sure the deployed site serves `assets/wasm/awk.wasm` with a valid WebAssembly MIME type when using the AWK engine.\n\n## Roadmap\n\n- More predefined AWK scripts\n- Better log format detection\n- Saved custom scripts\n- Larger-file performance improvements\n- More visual summaries\n- Drag-and-drop upload refinements\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavelbohovin%2Fawk-log-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpavelbohovin%2Fawk-log-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpavelbohovin%2Fawk-log-parser/lists"}