{"id":13478609,"url":"https://github.com/ezrosent/frawk","last_synced_at":"2025-05-14T22:07:19.103Z","repository":{"id":40607598,"uuid":"197134490","full_name":"ezrosent/frawk","owner":"ezrosent","description":"an efficient awk-like language","archived":false,"fork":false,"pushed_at":"2024-08-16T12:44:58.000Z","size":1941,"stargazers_count":1267,"open_issues_count":31,"forks_count":38,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-11T10:01:10.802Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ezrosent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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}},"created_at":"2019-07-16T06:32:40.000Z","updated_at":"2025-04-11T09:07:43.000Z","dependencies_parsed_at":"2024-01-06T13:18:54.114Z","dependency_job_id":"28230f34-85d5-440d-99a0-202c011e44e0","html_url":"https://github.com/ezrosent/frawk","commit_stats":{"total_commits":682,"total_committers":10,"mean_commits":68.2,"dds":0.02052785923753664,"last_synced_commit":"c428c5f695d92376c56baac5895fd242ebfb50a3"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezrosent%2Ffrawk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezrosent%2Ffrawk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezrosent%2Ffrawk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ezrosent%2Ffrawk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ezrosent","download_url":"https://codeload.github.com/ezrosent/frawk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235695,"owners_count":22036963,"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":[],"created_at":"2024-07-31T16:01:59.344Z","updated_at":"2025-05-14T22:07:14.063Z","avatar_url":"https://github.com/ezrosent.png","language":"Rust","readme":"# frawk\n\n*Note (2024, ezrosent@) While the [policy](https://github.com/ezrosent/frawk?tab=readme-ov-file#bugs-and-feature-requests)\non bugs and feature requests remains unchanged I've had much less time over the last 1-2 years to devote to bug fixes and\nfeature requests for frawk. Other awks are more actively maintained, and CSV support is now a much\nmore common feature in awk compared to when this project started; I'll update this notice if frawk's status changes.*\n\nfrawk is a small programming language for writing short programs processing\ntextual data. To a first approximation, it is an implementation of the\n[AWK](https://en.wikipedia.org/wiki/AWK) language; many common Awk programs\nproduce equivalent output when passed to frawk. You might be interested in frawk\nif you want your scripts to handle escaped CSV/TSV like standard Awk fields, or\nif you want your scripts to execute faster.\n\nThe info subdirectory has more in-depth information on frawk:\n\n* [Overview](https://github.com/ezrosent/frawk/blob/master/info/overview.md):\n  what frawk is all about, how it differs from Awk.\n* [Types](https://github.com/ezrosent/frawk/blob/master/info/types.md): A\n  quick gloss on frawk's approach to types and type inference.\n* [Parallelism](https://github.com/ezrosent/frawk/blob/master/info/parallelism.md):\n  An overview of frawk's parallelism support.\n* [Benchmarks](https://github.com/ezrosent/frawk/blob/master/info/performance.md):\n  A sense of the relative performance of frawk and other tools when processing\n  large CSV or TSV files.\n* [Builtin Functions Reference](https://github.com/ezrosent/frawk/blob/master/info/reference.md):\n  A list of builtin functions implemented by frawk, including some that are new\n  when compared with Awk.\n\nfrawk is dual-licensed under MIT or Apache 2.0.\n\n## Installation\n\n*Note: frawk uses some nightly-only Rust features by default.\nBuild [without the `unstable`](https://github.com/ezrosent/frawk#building-using-stable)\nfeature to build on stable.*  \n\nYou will need to [install Rust](https://rustup.rs/). If you have not updated rust in a while, \nrun `rustup update nightly` (or `rustup update` if building using stable). If you would like\nto use the LLVM backend, you will need an installation of LLVM 12 on your machine: \n\n* See [this site](https://apt.llvm.org/) for installation instructions on some debian-based Linux distros.\n  See also the comments on [this issue](https://github.com/ezrosent/frawk/issues/63) for docker files that\n  can be used to build a binary on Ubuntu.\n* On Arch `pacman -Sy llvm llvm-libs` and a C compiler (e.g. `clang`) are sufficient as of September 2020.\n* `brew install llvm@12` or similar seem to work on Mac OS.\n\nDepending on where your package manager puts these libraries, you may need to\npoint `LLVM_SYS_120_PREFIX` at the llvm library installation (e.g.\n`/usr/lib/llvm-12` on Linux or `/usr/local/opt/llvm@12` on Mac OS when installing llvm@12 via Homebrew).\n\n### Building Without LLVM\n\nWhile the LLVM backend is recommended, it is possible to build frawk only with\nsupport for the Cranelift-based JIT and its bytecode interpreter. To do this,\nbuild without the `llvm_backend` feature. The Cranelift backend provides\ncomparable performance to LLVM for smaller scripts, but LLVM's optimizations\ncan sometimes deliver a substantial performance boost over Cranelift (see the\n[benchmarks](https://github.com/ezrosent/frawk/blob/master/info/performance.md)\ndocument for some examples of this).\n\n### Building Using Stable\n\nfrawk currently requires a nightly compiler by default. To compile frawk using stable,\ncompile without the `unstable` feature. Using `rustup default nightly`, or some other\nmethod to run a nightly compiler release is otherwise required to build frawk.\n\n### Building a Binary\n\nWith those prerequisites, cloning this repository and a `cargo build --release`\nor `cargo [+nightly] install --path \u003cfrawk repo path\u003e` will produce a binary that you can\nadd to your `PATH` if you so choose:\n\n```\n$ cd \u003cfrawk repo path\u003e\n# With LLVM\n$ cargo +nightly install --path .\n# Without LLVM, but with other recommended defaults\n$ cargo +nightly install --path . --no-default-features --features use_jemalloc,allow_avx2,unstable\n```\n\nfrawk is now on [crates.io](https://crates.io/crates/frawk), so running \n`cargo +nightly install frawk` with the desired features should also work.\n\nWhile there are no _deliberate_ unix-isms in frawk, I have not tested it on Windows.\nfrawk does appear to build on Windows with default features disabled; see comments on [this issue](https://github.com/ezrosent/frawk/issues/87)\nfor more information.\n\n## Bugs and Feature Requests\n\nfrawk has bugs, and many rough edges. If you notice a bug in frawk, filing an issue\nwith an explanation of how to reproduce the error would be very helpful. There are\nno guarantees on response time or latency for a fix. No one works on frawk full-time.\nThe same policy holds for feature requests.\n","funding_links":[],"categories":["AWK-like Tools","Rust","Uncategorized","Applications"],"sub_categories":["Open USP Tsukubai","Uncategorized","System tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezrosent%2Ffrawk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fezrosent%2Ffrawk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fezrosent%2Ffrawk/lists"}