{"id":21543831,"url":"https://github.com/thealexdev23/japm","last_synced_at":"2025-04-10T04:41:01.454Z","repository":{"id":42621545,"uuid":"474651740","full_name":"TheAlexDev23/japm","owner":"TheAlexDev23","description":"A package manager that uses curses to provide a friendly UI","archived":false,"fork":false,"pushed_at":"2023-05-17T09:23:34.000Z","size":265,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T05:52:11.152Z","etag":null,"topics":["c","cli","package","package-manager","packages","tui"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheAlexDev23.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2022-03-27T13:51:03.000Z","updated_at":"2024-01-04T06:36:33.000Z","dependencies_parsed_at":"2024-01-07T21:21:58.976Z","dependency_job_id":"f8c4f859-7670-4e25-a510-bf665233569d","html_url":"https://github.com/TheAlexDev23/japm","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAlexDev23%2Fjapm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAlexDev23%2Fjapm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAlexDev23%2Fjapm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAlexDev23%2Fjapm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheAlexDev23","download_url":"https://codeload.github.com/TheAlexDev23/japm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248160610,"owners_count":21057548,"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","cli","package","package-manager","packages","tui"],"created_at":"2024-11-24T05:15:49.801Z","updated_at":"2025-04-10T04:41:01.429Z","avatar_url":"https://github.com/TheAlexDev23.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cdiv\u003e\n    \u003cimg src=\"/static/japmgif.gif\"/\u003e\n  \u003c/div\u003e\n  \u003cdiv\u003e\n    \u003ch1\u003eJAPM\u003c/h1\u003e\n    \u003cb\u003eJust-Another-Package-Manager\u003c/b\u003e\n  \u003c/div\u003e\n  \u003cbr/\u003e\n  \u003cdiv\u003e\n    \u003ca href=\"https://www.codefactor.io/repository/github/thealexdev23/japm\"\u003e\u003cimg src=\"https://www.codefactor.io/repository/github/thealexdev23/japm/badge\" alt=\"CodeFactor\" /\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues-raw/thealexdev23/japm\"/\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/thealexdev23/japm\"/\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/thealexdev23/japm\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/thealexdev23/japm/cmake.yml\"/\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003c/br\u003e\n\nJAPM is not intended to be the *\"next package manger\"* nor a large and powerfull package manager like apt or pacman. It is, rather, a small and light-weight package manager that can allow you to install small programs. These programs are usually made by indie open source developers. Having a separate package manager allows managing packages in a more organized way. From one side you will have large software that is installed by your main package manager and from the other you have small tools you found on github that make your day-to-day easier. Having all those packages managed by a single package manager can be uncomfortable, and JAPM tries to bring a solution to this.\n\nJAPM is also different from other package managers in the sense that it uses ncurses to create a TUI and represent information in a more organized and better looking way.\n\nHowever if you want to use it without ncurses it can also work as a normal comand-line package manager.\n\nA package is a .json file usually saved in a remote repository, by default it is [Japm Official Packages](https://github.com/TheAlexDev23/japm-official-packages). If you want to create a package, said repository has the instructions.\n\n# JAPM necessary milestones\n- [x] Logging system\n- [x] Error system\n- [x] Input parsing system\n- [x] JSON parsing\n- [x] Local DB CRUD\n- [x] Remote DB reading\n- [x] Actions system\n- [x] Package file download\n- [x] Package Installation\n- [x] Package Removal\n- [x] Package Update\n- [x] Package Search\n- [x] Progress bar \n- [x] Package list\n\n# Dependencies:\n\n```\nlibjson-c sqlite3 ncurses curl\n```\n\nNote, that even though JAPML has an option of not displaying curses mode, the ncurses library is still required for building from source.\n\n# Bulding from source\n\n```bash\ngit clone https://github.com/TheAlexDev23/japm.git\ncd japm\ncmake -S . -B build\ncd build\nmake\ncp ./japm /usr/bin\n```\n\n# Downloading a release\nDownload the [latest release](https://github.com/TheAlexDev23/japm/releases/latest) and move japm to /usr/bin\n\n# How to use\n## Installing packages\n\nThis will install all packages and it's dependencies\n\n`sudo japm install package_name1 package_name2 package_name2`\n\n## Removing packages\n\nWill remove if no packages depend on these.\n\n`sudo japm remove package_name1 package_name2 package_name3`\n\nIf you want to delete a package and all packages that depend on it run the following:\n\n`sudo japm -rec remove package_name1 package_name2 package_name3`\n\n## Updating packages\n\nWill reinstall selected packages but not dependencies\n\n`sudo japm update package_name1 package_name2 package_name3`\n\nIf you want to update **all** installed packages\n\n`sudo japm -all update`\n\n## Searching for packages\n\nWill search and print general information about a package.\n`sudo japm search package_name1 package_name2 package_name3`\n\n## Running without ncurses\n`sudo japm -nocurses ...`\n\n## Providing log files\n`sudo japm --log_files logf1 logf2 logf3 --error_log_files errlogf1 errlogf2 errlogf3`\n\n## Other commands\nRun `sudo japm --help` for a list of available commands and parameters.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthealexdev23%2Fjapm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthealexdev23%2Fjapm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthealexdev23%2Fjapm/lists"}