All Projects → librariesio → Bibliothecary

librariesio / Bibliothecary

Licence: agpl-3.0
📔 Libraries.io Package Manager Manifest Parsers

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Bibliothecary

dex
docker executables - run applications without installing them or their dependencies
Stars: ✭ 31 (-50%)
Mutual labels:  package-manager, dependencies
Laravel Paket
Composer GUI. Manage Laravel dependencies from web interface without switching to command line!
Stars: ✭ 143 (+130.65%)
Mutual labels:  dependencies, package-manager
Setup Miniconda
Set up your GitHub Actions workflow with conda via miniconda
Stars: ✭ 222 (+258.06%)
Mutual labels:  dependencies, package-manager
Athens
A Go module datastore and proxy
Stars: ✭ 3,736 (+5925.81%)
Mutual labels:  dependencies, package-manager
Ort
A suite of tools to assist with reviewing Open Source Software dependencies.
Stars: ✭ 446 (+619.35%)
Mutual labels:  dependencies, package-manager
Cpm.cmake
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
Stars: ✭ 560 (+803.23%)
Mutual labels:  dependencies, package-manager
Patch Package
Fix broken node modules instantly 🏃🏽‍♀️💨
Stars: ✭ 6,062 (+9677.42%)
Mutual labels:  dependencies, package-manager
Libraries.io
📚 The Open Source Discovery Service
Stars: ✭ 903 (+1356.45%)
Mutual labels:  dependencies, package-manager
Tree Sitter Cpp
C++ grammar for tree-sitter
Stars: ✭ 52 (-16.13%)
Mutual labels:  parser
Mpm
Simple Matlab package management inspired by pip
Stars: ✭ 56 (-9.68%)
Mutual labels:  package-manager
Atc
STM32 LL AT-Command parser
Stars: ✭ 53 (-14.52%)
Mutual labels:  parser
Spoon
Spoon is a metaprogramming library to analyze and transform Java source code (up to Java 15). 🥄 is made with ❤️, 🍻 and ✨. It parses source files to build a well-designed AST with powerful analysis and transformation API.
Stars: ✭ 1,078 (+1638.71%)
Mutual labels:  parser
Unityasync
Task and Async Utility Package for Unity. Start co-routines from anywhere.
Stars: ✭ 58 (-6.45%)
Mutual labels:  package-manager
Jgo
Launch Java code from the CLI, installation-free. ☕
Stars: ✭ 53 (-14.52%)
Mutual labels:  package-manager
Url Highlight
PHP library to parse urls from string input
Stars: ✭ 61 (-1.61%)
Mutual labels:  parser
M3u8
Python m3u8 Parser for HTTP Live Streaming (HLS) Transmissions
Stars: ✭ 1,064 (+1616.13%)
Mutual labels:  parser
Tree Sitter Ruby
Ruby grammar for tree-sitter
Stars: ✭ 51 (-17.74%)
Mutual labels:  parser
Cssparser.js
cssparser.js is a parser that generate json from css with matched orders & structures.
Stars: ✭ 61 (-1.61%)
Mutual labels:  parser
When
A natural language date/time parser with pluggable rules
Stars: ✭ 1,113 (+1695.16%)
Mutual labels:  parser
Vim Package Info
Vim plugin to quickly view info about the packages you use
Stars: ✭ 57 (-8.06%)
Mutual labels:  package-manager

Bibliothecary

Dependency manifest parsing library for https://libraries.io

Build Status license

Installation

Add this line to your application's Gemfile:

gem 'bibliothecary'

And then execute:

$ bundle

Or install it yourself as:

$ gem install bibliothecary

Usage

Identify package manager manifests from a list of files:

Bibliothecary.identify_manifests(['package.json', 'README.md', 'index.js']) #=> 'package.json'

Parse a manifest file for it's dependencies:

Bibliothecary.analyse_file 'bower.json', File.open('bower.json').read

Search a directory for manifest files and parse the contents:

Bibliothecary.analyse('./')

There are a number of parsers that rely on web services to parse the file formats, those urls can be configured like so:

Bibliothecary.configure do |config|
  config.carthage_parser_host = 'http://my-carthage-parsing-service.com'
end

All available config options are in: https://github.com/librariesio/bibliothecary/blob/master/lib/bibliothecary/configuration.rb

Supported package manager file formats

  • Hackage
    • *.cabal
  • npm
    • package.json
    • package-lock.json
    • npm-shrinkwrap.json
    • yarn.lock
  • Maven
    • pom.xml
    • ivy.xml
    • build.gradle
  • RubyGems
    • Gemfile
    • Gemfile.lock
    • gems.rb
    • gems.locked
    • *.gemspec
  • Packagist
    • composer.json
    • composer.lock
  • PyPi
    • setup.py
    • req*.txt
    • req*.pip
    • requirements/*.txt
    • requirements/*.pip
    • Pipfile
    • Pipfile.lock
  • Nuget
    • packages.config
    • Project.json
    • Project.lock.json
    • *.nuspec
    • paket.lock
    • *.csproj
  • Bower
    • bower.json
  • CPAN
    • META.json
    • META.yml
  • CocoaPods
    • Podfile
    • Podfile.lock
    • *.podspec
  • Anaconda
    • environment.yml
    • environment.yaml
  • Clojars
    • project.clj
  • Meteor
    • versions.json
  • CRAN
    • DESCRIPTION
  • Cargo
    • Cargo.toml
    • Cargo.lock
  • Hex
    • mix.exs
    • mix.lock
  • Swift
    • Package.swift
  • Pub
    • pubspec.yaml
    • pubspec.lock
  • Carthage
    • Cartfile
    • Cartfile.private
    • Cartfile.resolved
  • Dub
    • dub.json
    • dub.sdl
  • Julia
    • REQUIRE
  • Shards
    • shard.yml
    • shard.lock
  • Go
    • glide.yaml
    • glide.lock
    • Godeps
    • Godeps/Godeps.json
    • vendor/manifest
    • vendor/vendor.json
    • Gopkg.toml
    • Gopkg.lock
    • go.mod
    • go.sum
    • go-resolved-dependencies.json
  • Elm
    • elm-package.json
    • elm_dependencies.json
    • elm-stuff/exact-dependencies.json
  • Haxelib
    • haxelib.json
  • Hackage
    • *.cabal
    • cabal.config

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, 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.

Contributing

Bug 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 code of conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].