# Open Source Select

Finding an Open Source Project to solve your specific problem can be difficult, especially when you don't know the name of the projects. Using Debricked's Open Source Select database you can search for, and compare, Open Source Projects by searching for either their name or your desired functionality.

This documentation shows you how to do that and provides you with a few example search queries to get you started.

Start using Open Source Select (opens new window) by using the search field. You can search on project names or project functionality and further refine your search using filters.

To search, use a few good keywords describing what you're looking for. For example, try searching for frontend graphs if you're looking for a project to help you create nice looking graphs, or search for message broker if you're looking for data streaming projects.

For example, searching 'api framework that is easy to learn' should show you https://debricked.com/en/select/package/pypi-fastapi, as this project states this trait in its readme. We are developing a deeper functionality search, stay tuned!

# Search on project names

Enter the name of the project you wish to know more about and hit enter. A list of projects matching the search string fully or partially will be shown.

# Search on project functionality

As a developer you often know the problem you want to solve, but not necessarily all projects that exist to address that problem. Searching for the functionality that you're after helps you discover these projects.

# Search for repositories

Open Source Select isn't limited to packages but it is also possible to search for repositories using the repository_owner/repository_name format. The results from this query can be dependencies which are repository-only and dependencies which have a package and hold their code in the searched repository.

# Search using the pURL standard

It is possible to search for dependencies using the common pURL format:

  • The type section of the pURL corresponds to the package manager used by the dependency, or in case of a repository-only dependencies, it can be set to the version control system used.
  • The namespace is used mainly for repository-only dependencies, corresponding to the repository owner.
  • The name section, intuitively, corresponds to the package or repositories name.

The pURL standard is also supported directly in the url like so: https://debricked.com/en/select/package/{purl}.

Try out some examples in Select!

# Refine your results using filters

The most powerful way to search the Select database is by combining project name or project functionality searches with filters narrow down the results to your preferences.

You can add filters for:

  • Programming Language
  • Package Manager
  • Excluded licenses

For example, you might search for frontend graphs using the filters Excluded licenses: GPL 3.0 and Package Mangager: NPM to only get results that are compatible with your tech stack and compliance policies.

# Compare

The compare feature is a great way to quickly get a grasp on the pros and cons of a few projects that you are researching for implementation. Comparing allows you to see the metrics of multiple projects overlaid on eachother so that any differences are easy to spot.

Select the projects that you want to compare by clicking the compare icon on each project's card and then clicking Compare dependencies text in the top right of the page.

You can also click Quick Compare to get a comparison of the top 3 results on the search page - or click on Compare under simliar dependencies to compare those projects.

# Dependency details

The dependency details view is the place to understand an Open Source Project.

Understand what the dependency does by reading the description and Readme, get suggestions on similar dependencies and - most importantly - dive deep into the Contributor and Popularity metrics to truly understand the strenghts and weaknesses of the dependency.

# Similar dependencies

Lists two dependencies with similar functionality and their respective popularity and contributor scores. You can use the compare feature to compare them to the dependency you are currently viewing.

# Metric cards

A metric is a measurement of a key aspect of a open source projects overall quality, such as it's contributors or it's popularity. It's underlying datamodel works by aggregating data points into submetrics that are then aggregated into a metric. We call these:

  • Features: the lowest level datapoint
  • Practices: the aggregated submetrics
  • Metrics: the final aggregation of practices

Learn more about how metrics work here.

A metric card shows all of the metric's practices in a radar chart. You can hover on each practice's position in the chart to see the score of that practice and if you click on a practice, all of it's features is shown.

# Additional information

  • Versions list all existing versions of a dependency
  • Readme shows the Readme.md file from the dependency's GitHub repo