beam_meta

A library to programmatically retrieve information related to BEAM languages

Downloads
242
Stars
5
Committers
1

BeamMeta

Introduction

BeamMeta is a library to programmatically get information related to BEAM languages.

Currently Elixir and Erlang/OTP are supported. More languages will be added if there's interest.

The library is divided into the following namespaces:

BeamMeta.Compatibility

Provides compatibility between Elixir and Erlang/OTP versions.

The Compatibility.OtpElixir submodule has functions for returning the compatibility table, Elixir and OTP releases, and also the compatible?/2 helper than tells you whether and OTP and an Elixir release are compatible.

BeamMeta.Release

Provides information related to releases such as published versions, release condidates, latest Elixir version, etc.

The Release submodule provides guards such as is_elixir_version/1 or is_otp_version/1 amongst others.

Additionally, there is a sister library called BeamLangsMetaData which contains the up-to-date data and the one on which this library builds on such as the compatibility tables, and release information. The source code can be found at: https://github.com/eksperimental/beam_langs_meta_data

Important Notice

Due to the nature of the project and since we have not reached v1.0 yet, only the latest v0.MINOR version will be update with the latest meta-data. Older packages will be retired and you will get a warning when using them indicating that you need to update your library.

Repository and Packages

This source code is freely available at https://github.com/eksperimental/beam_meta

Packages are regularly updated. All published packages can be found on Hex: https://hex.pm/packages/beam_meta

Documentation

Online documentation can be found at https://hexdocs.pm/beam_meta

Installation

The package can be installed by adding beam_meta to your list of dependencies in mix.exs:

def deps do
  [
    {:beam_meta, "~> 0.2.1"},
  ]
end

Feature Requests

Feel free to open up an issue https://github.com/eksperimental/beam_meta/issues with your request.

Development

Run git clone install the repository locally. You can run the following tasks by running:

  • mix setup
  • mix validate
  • mix all

Run tests by executing: mix test

Road Map

  1. Automatic package publishing on every OTP and Elixir new release.
  2. Detect update if the release data gets updated. This feature depends on BeamLangsMetaData, but it is planned to be included.

Contact

Eksperimental <eskperimental (at) autistici (dot) org>

License

No Copyright

This work is released to the Public Domain and multi-licensed under the Creative Commons Zero Universal version 1.0 license, the MIT No Attribution license, and the BSD Zero Clause license.

You can choose between one of them if you use this work.

The author, Eksperimental has dedicated the work to the public domain by waiving all copyright and related or neighboring rights to this work worldwide under copyright law including all related and neighboring rights, to the extent allowed by law.

You can copy, modify, distribute and create derivative work, even for commercial purposes, all without asking permission. Giving credits is appreciated though; you may link to this repository if you wish.

Check the LICENSES/LICENSE.CC0-1.0.txt, LICENSES/LICENSE.MIT-0.txt, LICENSES/LICENSE.0BSD.txt files for more information.

SPDX-License-Identifier: CC0-1.0 or MIT-0 or 0BSD

Package Rankings
Top 41.74% on Hex.pm