{"id":13492763,"url":"https://github.com/calccrypto/tar","last_synced_at":"2025-04-12T11:52:01.797Z","repository":{"id":4206108,"uuid":"41377736","full_name":"calccrypto/tar","owner":"calccrypto","description":"A simple tar implementation in C","archived":false,"fork":false,"pushed_at":"2024-01-15T20:14:49.000Z","size":20,"stargazers_count":121,"open_issues_count":2,"forks_count":35,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T06:34:35.814Z","etag":null,"topics":["c","commandline-interface","extract","linux","tar"],"latest_commit_sha":null,"homepage":"","language":"C","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/calccrypto.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}},"created_at":"2015-08-25T17:26:58.000Z","updated_at":"2025-03-22T09:09:57.000Z","dependencies_parsed_at":"2024-10-31T06:41:56.342Z","dependency_job_id":null,"html_url":"https://github.com/calccrypto/tar","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2Ftar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2Ftar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2Ftar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calccrypto%2Ftar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/calccrypto","download_url":"https://codeload.github.com/calccrypto/tar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248565005,"owners_count":21125413,"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":["c","commandline-interface","extract","linux","tar"],"created_at":"2024-07-31T19:01:08.957Z","updated_at":"2025-04-12T11:52:01.778Z","avatar_url":"https://github.com/calccrypto.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"## A simple tar implementation\n\nCopyright (c) 2015 Jason Lee @ calccrypto at gmail.com\n\nPlease see LICENSE file for license.\n\n[![Build Status](https://travis-ci.com/calccrypto/tar.svg?branch=master)](https://travis-ci.com/calccrypto/tar)\n\nThis is only a simple implementation of the tar file format.\nIt can tar files and extract them. That is about it. Although\nthere are some other utility functions written, they are a very\nsmall subset that are provided by GNU Tar. Everything was written\nbased on Wikipedia and the observed results of GNU Tar.\n\nThis only works on Linux (or Linux-like environment, such as cygwin)\ndue to the sheer number of POSIX header files being used. The minimum\nC standard needed is C99.\n\nThe purpose of this is to be a tar library that can be used\ninside other programs, so that programs don't have to call\nor perform the tarring outside of the program (such as with\nsystem, exec, or through a script)\n\nTo build:\n\n    make      - creates libtar.a\n    make exec - makes the commandline interface 'exec'\n    make test - tests the commandline interface\n\nUsage:\n\n  The library consists of some core functions for basic funtionality,\n  some utility functions that expand on functionality, and some internal\n  functions that should not be called from outside the function.\n\n  Core Functions    | Description\n -------------------|---------------------------\n  tar_read          | Read from a tar file. Expects address to a null pointer.\n  tar_write         | Write to a tar file. If a non-empty archive is also provided, the new files will be appended to the older data.\n  tar_free          | Frees up memory used by existing archive instances.\n -------------------------\n  Utility Functions | Description\n -------------------|-------------------------\n  tar_ls            | Prints the contents of an archive. Verbosity level changes what is printed.\n  tar_extract       | Extracts the contents of an archive. A filter list can be provided to only extract certain files.\n  tar_update        | Scans through the current working directory and appends any files that are updates of archive entries.\n  tar_remove        | Given a list of entries, removes those entries from the archive.\n  tar_diff          | Checks for differences between entries in the archive and the current working directory.\n\n  Many of these functions are just wrappers around internal functions.\n  All functions that involve changing the data in a `struct tar_t *` will\n  take in the address of the archive (`struct tar_t **`).\n\n  If any function that modifies archive variables errors, it is most\n  likely that the data held in the archive variable is no longer valid.\n\nThe commandline interface only has a handful of options, each of which\nruns one or more of the public functions. Type `help` into the commandline\ninterface to see its usage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalccrypto%2Ftar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalccrypto%2Ftar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalccrypto%2Ftar/lists"}