{"id":14156533,"url":"https://github.com/librariesio/bibliothecary","last_synced_at":"2025-04-08T01:36:20.178Z","repository":{"id":3461483,"uuid":"49605120","full_name":"librariesio/bibliothecary","owner":"librariesio","description":":notebook_with_decorative_cover: Libraries.io Package Manager Manifest Parsers","archived":false,"fork":false,"pushed_at":"2025-03-18T14:23:05.000Z","size":2192,"stargazers_count":92,"open_issues_count":15,"forks_count":37,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-04-01T00:34:04.421Z","etag":null,"topics":["dependencies","librariesio","package-manager","parser"],"latest_commit_sha":null,"homepage":"https://libraries.io/rubygems/bibliothecary","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":"","scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/librariesio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2016-01-13T22:05:12.000Z","updated_at":"2025-03-18T14:22:40.000Z","dependencies_parsed_at":"2024-11-17T04:04:58.459Z","dependency_job_id":"c1d4b328-694a-42bc-8006-0b06f228079a","html_url":"https://github.com/librariesio/bibliothecary","commit_stats":{"total_commits":694,"total_committers":34,"mean_commits":20.41176470588235,"dds":0.6210374639769453,"last_synced_commit":"ece03901a890661b1cea1a2f2ffe2ab0e3d5b72d"},"previous_names":[],"tags_count":135,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librariesio%2Fbibliothecary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librariesio%2Fbibliothecary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librariesio%2Fbibliothecary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librariesio%2Fbibliothecary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/librariesio","download_url":"https://codeload.github.com/librariesio/bibliothecary/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247761051,"owners_count":20991531,"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":["dependencies","librariesio","package-manager","parser"],"created_at":"2024-08-17T08:05:58.421Z","updated_at":"2025-04-08T01:36:20.150Z","avatar_url":"https://github.com/librariesio.png","language":"Ruby","funding_links":[],"categories":["package-manager"],"sub_categories":[],"readme":"# Bibliothecary\n\nDependency manifest parsing library for https://libraries.io\n\n[![Build Status](https://travis-ci.org/librariesio/bibliothecary.svg?branch=master)](https://travis-ci.org/librariesio/bibliothecary)\n[![license](https://img.shields.io/github/license/librariesio/bibliothecary.svg)](https://github.com/librariesio/bibliothecary/blob/master/LICENSE.txt)\n\n## Installation\n\nRequires Ruby 3.0 or above.\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'bibliothecary'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install bibliothecary\n\n## Usage\n\nIdentify package manager manifests from a list of files:\n\n```ruby\nBibliothecary.identify_manifests(['package.json', 'README.md', 'index.js']) #=\u003e 'package.json'\n```\n\nParse a manifest file for it's dependencies:\n\n```ruby\nBibliothecary.analyse_file 'bower.json', File.open('bower.json').read\n```\n\nSearch a directory for manifest files and parse the contents:\n\n```ruby\nBibliothecary.analyse('./')\n```\n\nThere are a number of parsers that rely on web services to parse the file formats, those urls can be configured like so:\n\n```ruby\nBibliothecary.configure do |config|\n  config.carthage_parser_host = 'http://my-carthage-parsing-service.com'\nend\n```\n\nAll available config options are in: https://github.com/librariesio/bibliothecary/blob/master/lib/bibliothecary/configuration.rb\n\n## Supported package manager file formats\n\n- npm\n  - package.json\n  - package-lock.json\n  - npm-shrinkwrap.json\n  - yarn.lock\n- Maven\n  - pom.xml\n  - ivy.xml\n  - build.gradle\n  - gradle-dependencies-q.txt\n- RubyGems\n  - Gemfile\n  - Gemfile.lock\n  - gems.rb\n  - gems.locked\n  - *.gemspec\n- Packagist\n  - composer.json\n  - composer.lock\n- PyPi\n  - setup.py\n  - req*.txt\n  - req*.pip\n  - requirements/*.txt\n  - requirements/*.pip\n  - Pipfile\n  - Pipfile.lock\n  - pyproject.toml\n  - poetry.lock\n- Nuget\n  - packages.config\n  - Project.json\n  - Project.lock.json\n  - *.nuspec\n  - paket.lock\n  - *.csproj\n  - project.assets.json\n- CycloneDX\n  - XML as cyclonedx.xml\n  - JSON as cyclonedx.json\n  - Note that CycloneDX manifests can contain information on multiple\n    package manager's packages!\n- SPDX\n  - tag:value as *.spdx\n  - JSON as *.spdx.json\n  - Note that SPDX manifests can contain information on multiple\n    package manager's packages!\n- Bower\n  - bower.json\n- CPAN\n  - META.json\n  - META.yml\n- CocoaPods\n  - Podfile\n  - Podfile.lock\n  - *.podspec\n- Anaconda\n  - environment.yml\n  - environment.yaml\n- Clojars\n  - project.clj\n- Meteor\n  - versions.json\n- CRAN\n  - DESCRIPTION\n- Cargo\n  - Cargo.toml\n  - Cargo.lock\n- Hex\n  - mix.exs\n  - mix.lock\n- Swift\n  - Package.swift\n- Pub\n  - pubspec.yaml\n  - pubspec.lock\n- Carthage\n  - Cartfile\n  - Cartfile.private\n  - Cartfile.resolved\n- Dub\n  - dub.json\n  - dub.sdl\n- Julia\n  - REQUIRE\n- Shards\n  - shard.yml\n  - shard.lock\n- Go\n  - glide.yaml\n  - glide.lock\n  - Godeps\n  - Godeps/Godeps.json\n  - vendor/manifest\n  - vendor/vendor.json\n  - Gopkg.toml\n  - Gopkg.lock\n  - go.mod\n  - go.sum\n  - go-resolved-dependencies.json\n- Elm\n  - elm-package.json\n  - elm_dependencies.json\n  - elm-stuff/exact-dependencies.json\n- Haxelib\n  - haxelib.json\n- Hackage\n  - \\*.cabal\n  - cabal.config\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`.\n\nTo release a new version:\n* in `CHANGELOG.md`, move the changes under `\"Unreleased\"` into a new section with your version number\n* bump and commit the version number in `version.rb` in the `main` branch\n* and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/librariesio/bibliothecary. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrariesio%2Fbibliothecary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibrariesio%2Fbibliothecary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrariesio%2Fbibliothecary/lists"}