diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml
new file mode 100644
index 0000000..ab9611e
--- /dev/null
+++ b/.github/workflows/tox.yml
@@ -0,0 +1,29 @@
+name: Tests & linting with tox
+
+on:
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    strategy:
+      max-parallel: 5
+      matrix:
+        python-version: [3.7, 3.8, 3.9]
+
+    steps:
+    - uses: actions/checkout@v1
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        pip install tox tox-gh-actions
+
+    - name: Test with tox
+      run: tox
diff --git a/AUTHORS.txt b/AUTHORS.txt
new file mode 100644
index 0000000..6311381
--- /dev/null
+++ b/AUTHORS.txt
@@ -0,0 +1,10 @@
+# This is the official list of authors of the
+# `gflanguages` module for copyright purposes.
+# This file is distinct from the CONTRIBUTORS files.
+# See the latter for an explanation.
+
+# Names should be added to this file as:
+# Name or Organization <email address>
+# The email address is not required for organizations.
+
+Google LLC
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..1caf6c7
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,8 @@
+Below are the most important changes from each release.
+
+## 0.1.0 (2022-Mar-04)
+### Release notes
+  - Initial release of the `axisregistry` python module.
+  - Most of the code & data was migrated from the [`fontbakery`](https://github.com/googlefonts/fontbakery/) and [`google/fonts`](https://github.com/google/fonts/) git repositories so that the GF Axis Registry data can be easily available to all our tools. The most immediate user of this module is `Font Bakery` itself, as well as `GFTools`.
+  - Axis Registry definitions are still being gradualy updated on the `google/fonts` repo, on its **axisregistry/** directory (https://github.com/google/fonts/tree/main/axisregistry) and this `axisregistry` python module will try to be kept in sync.
+  - There's an ongoing plan to make this module the main place to update these definitions, avoiding data duplication and guaranteeing uniformity across tools.
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
new file mode 100644
index 0000000..32766ac
--- /dev/null
+++ b/CONTRIBUTORS.txt
@@ -0,0 +1,27 @@
+# This is the official list of people who can contribute
+# (and typically have contributed) code to this repository.
+# The AUTHORS file lists the copyright holders; this file
+# lists people.  For example, Google employees are listed here
+# but not in AUTHORS, because Google holds the copyright.
+#
+# Names should be added to this file only after verifying that
+# the individual or the individual's organization has agreed to
+# the appropriate Contributor License Agreement, found here:
+#
+#     http://code.google.com/legal/individual-cla-v1.0.html
+#     http://code.google.com/legal/corporate-cla-v1.0.html
+#
+# The agreement for individuals can be filled out on the web.
+#
+# When adding J Random Contributor's name to this file,
+# either J's name or J's organization's name should be
+# added to the AUTHORS file, depending on whether the
+# individual or corporate CLA was used.
+#
+# Names should be added to this file like so:
+#     Name <email address>
+#
+# Please keep the list sorted.
+# (first name; alphabetical order)
+
+Felipe Correa da Silva Sanches <juca@members.fsf.org>
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..ef51da2
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,202 @@
+
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/Lib/axisregistry/__init__.py b/Lib/axisregistry/__init__.py
new file mode 100644
index 0000000..9e5e3f3
--- /dev/null
+++ b/Lib/axisregistry/__init__.py
@@ -0,0 +1,56 @@
+from pkg_resources import resource_filename
+from google.protobuf import text_format
+
+from axisregistry.axes_pb2 import AxisProto
+
+try:
+    from ._version import version as __version__  # type: ignore
+except ImportError:
+    __version__ = "0.0.0+unknown"
+
+
+def AxisRegistry():
+    registry = {}
+
+    def get_Protobuf_Message(klass, path):
+        message = klass()
+        with open(path, "rb") as text_data:
+            text_format.Merge(text_data.read(), message)
+        return message
+
+    def normalize_name(name):
+        return ''.join(name.split(' '))
+
+    def append_AxisMessage(path):
+        axis_dict = {"message": get_Protobuf_Message(AxisProto, path),
+                     "fallbacks": {}}
+        for fb in axis_dict["message"].fallback:  # pylint: disable=E1101
+            axis_dict["fallbacks"][normalize_name(fb.name)] = fb.value
+        registry[axis_dict["message"].tag] = axis_dict  # pylint: disable=E1101
+
+    for axis in ["casual.textproto",
+                 "cursive.textproto",
+                 "fill.textproto",
+                 "flair.textproto",
+                 "grade.textproto",
+                 "italic.textproto",
+                 "monospace.textproto",
+                 "optical_size.textproto",
+                 "slant.textproto",
+                 "softness.textproto",
+                 "volume.textproto",
+                 "weight.textproto",
+                 "width.textproto",
+                 "wonky.textproto",
+                 "x_opaque.textproto",
+                 "x_transparent_figures.textproto",
+                 "x_transparent.textproto",
+                 "y_opaque.textproto",
+                 "y_transparent_ascender.textproto",
+                 "y_transparent_descender.textproto",
+                 "y_transparent_figures.textproto",
+                 "y_transparent_lowercase.textproto",
+                 "y_transparent_uppercase.textproto"]:
+        append_AxisMessage(resource_filename('axisregistry', 'data/' + axis))
+
+    return registry
diff --git a/Lib/axisregistry/axes.proto b/Lib/axisregistry/axes.proto
new file mode 100644
index 0000000..979d247
--- /dev/null
+++ b/Lib/axisregistry/axes.proto
@@ -0,0 +1,43 @@
+syntax = "proto2";
+// GF Axis Registry Protos
+
+// An axis in the GF Axis Registry
+message AxisProto {
+  // Axis tag
+  optional string tag = 1;
+
+  // Display name for axis, e.g. "Optical size" for 'opsz'
+  // Like 'Name' in
+  // https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_opsz
+  optional string display_name = 7;
+
+  // Lower bound for the axis
+  optional float min_value = 2;
+
+  // The default position to use and to prefer for exemplars
+  optional float default_value = 3;
+
+  // Upper bound for the axis
+  optional float max_value = 4;
+
+  // Input values for this axis must aligned to 10^precision
+  optional int32 precision = 5;
+
+  // Fallback positions along the axis
+  repeated FallbackProto fallback = 6;
+
+  // Short descriptive paragraph
+  optional string description = 8;
+
+  // Whether only the fallback positions should be used, for example, an axis
+  // might have only three relevant positions: the min, the middle, and the max.
+  optional bool fallback_only = 9;
+
+  // Next = 10
+}
+
+message FallbackProto {
+  optional string name = 1;
+  optional float value = 2;
+  optional string display_name = 3;
+}
diff --git a/Lib/axisregistry/axes_pb2.py b/Lib/axisregistry/axes_pb2.py
new file mode 100644
index 0000000..2e201c7
--- /dev/null
+++ b/Lib/axisregistry/axes_pb2.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: axes.proto
+"""Generated protocol buffer code."""
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\naxes.proto\"\xcc\x01\n\tAxisProto\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\x12\x11\n\tmin_value\x18\x02 \x01(\x02\x12\x15\n\rdefault_value\x18\x03 \x01(\x02\x12\x11\n\tmax_value\x18\x04 \x01(\x02\x12\x11\n\tprecision\x18\x05 \x01(\x05\x12 \n\x08\x66\x61llback\x18\x06 \x03(\x0b\x32\x0e.FallbackProto\x12\x13\n\x0b\x64\x65scription\x18\x08 \x01(\t\x12\x15\n\rfallback_only\x18\t \x01(\x08\"B\n\rFallbackProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t')
+
+
+
+_AXISPROTO = DESCRIPTOR.message_types_by_name['AxisProto']
+_FALLBACKPROTO = DESCRIPTOR.message_types_by_name['FallbackProto']
+AxisProto = _reflection.GeneratedProtocolMessageType('AxisProto', (_message.Message,), {
+  'DESCRIPTOR' : _AXISPROTO,
+  '__module__' : 'axes_pb2'
+  # @@protoc_insertion_point(class_scope:AxisProto)
+  })
+_sym_db.RegisterMessage(AxisProto)
+
+FallbackProto = _reflection.GeneratedProtocolMessageType('FallbackProto', (_message.Message,), {
+  'DESCRIPTOR' : _FALLBACKPROTO,
+  '__module__' : 'axes_pb2'
+  # @@protoc_insertion_point(class_scope:FallbackProto)
+  })
+_sym_db.RegisterMessage(FallbackProto)
+
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+  DESCRIPTOR._options = None
+  _AXISPROTO._serialized_start=15
+  _AXISPROTO._serialized_end=219
+  _FALLBACKPROTO._serialized_start=221
+  _FALLBACKPROTO._serialized_end=287
+# @@protoc_insertion_point(module_scope)
diff --git a/Lib/axisregistry/data/casual.textproto b/Lib/axisregistry/data/casual.textproto
new file mode 100644
index 0000000..4909bbd
--- /dev/null
+++ b/Lib/axisregistry/data/casual.textproto
@@ -0,0 +1,20 @@
+# CASL based on https://github.com/arrowtype/Recursive#variable-axes
+tag: "CASL"
+display_name: "Casual"
+min_value: 0
+max_value: 1
+default_value: 0
+precision: -2
+fallback {
+  name: "Linear"
+  value: 0
+}
+fallback {
+  name: "Casual"
+  value: 1
+}
+fallback_only: false
+description:
+  "Along this axis, letterforms adjust in stroke curvature, contrast, and"
+  " terminals to go from a sturdy, rational 'Linear' style to a friendly,"
+  " energetic 'Casual' style."
diff --git a/Lib/axisregistry/data/cursive.textproto b/Lib/axisregistry/data/cursive.textproto
new file mode 100644
index 0000000..ab0ac29
--- /dev/null
+++ b/Lib/axisregistry/data/cursive.textproto
@@ -0,0 +1,27 @@
+# CRSV based on https://github.com/arrowtype/Recursive#variable-axes
+tag: "CRSV"
+display_name: "Cursive"
+min_value: 0
+max_value: 1
+default_value: 0.5
+precision: -1
+fallback {
+  name: "Roman"
+  value: 0
+  display_name: "Off"
+}
+fallback {
+  name: "Auto"
+  value: 0.5
+}
+fallback {
+  name: "Cursive"
+  value: 1
+  display_name: "On"
+}
+fallback_only: true
+description:
+  "Controls the substitution of cursive forms along the Slant axis. 'Off' (0)"
+  " maintains Roman letterforms such as a double-story a and g, 'Auto' (0.5)"
+  " allows for Cursive substitution, and 'On' (1) asserts cursive forms even"
+  " in upright text with a Slant of 0."
diff --git a/Lib/axisregistry/data/fill.textproto b/Lib/axisregistry/data/fill.textproto
new file mode 100644
index 0000000..97a1e41
--- /dev/null
+++ b/Lib/axisregistry/data/fill.textproto
@@ -0,0 +1,22 @@
+tag: "FILL"
+display_name: "Fill"
+min_value: 0.0
+default_value: 0.0
+max_value: 1.0
+precision: -2
+fallback {
+  name: "Normal"
+  value: 0.0
+}
+fallback {
+  name: "Filled"
+  value: 1.0
+}
+fallback_only: false
+description: "The Fill axis is intended to provide a treatment of the design"
+  " that fills in transparent forms with opaque ones (and sometimes interior"
+  " opaque forms become transparent, to maintain contrasting shapes)."
+  " Transitions often occur from the center, a side, or a corner,"
+  " but can be in any direction. This can be useful in animation or"
+  " interaction to convey a state transition. The numbers indicate"
+  " proportion filled, from 0 (no treatment) to 1 (completely filled)." 
\ No newline at end of file
diff --git a/Lib/axisregistry/data/flair.textproto b/Lib/axisregistry/data/flair.textproto
new file mode 100644
index 0000000..d95dac1
--- /dev/null
+++ b/Lib/axisregistry/data/flair.textproto
@@ -0,0 +1,18 @@
+tag: "FLAR"
+display_name: "Flair"
+min_value: 0.0
+default_value: 0.0
+max_value: 100.0
+precision: 1
+fallback {
+  name: "Normal"
+  value: 0.0
+}
+fallback {
+  name: "Flair"
+  value: 100.0
+}
+description: 
+  "As the flair axis grows, the straight sans serif terminals develop"
+  " a swelling, and joints become more idiosyncratic. Originally referring"
+  " to the flaring of the stems, Flair stands for style and panache."
diff --git a/Lib/axisregistry/data/grade.textproto b/Lib/axisregistry/data/grade.textproto
new file mode 100644
index 0000000..f77a136
--- /dev/null
+++ b/Lib/axisregistry/data/grade.textproto
@@ -0,0 +1,18 @@
+# GRAD based on https://github.com/TypeNetwork/Opentype-1.8-Axis-Proposal/blob/gh-pages/proposal/Grade/ProposalSummary.md
+tag: "GRAD"
+display_name: "Grade"
+min_value: -1000
+max_value: 1000
+default_value: 0
+precision: 0
+fallback {
+  name: "Normal"
+  value: 0
+}
+fallback_only: false
+description:
+  "Finesse the style from lighter to bolder in typographic color, by varying"
+  " stroke thicknesses or other forms, without any changes overall width,"
+  " inter-letter spacing, or kerning, so there are no changes to line breaks"
+  " or page layout. Negative grade makes the style lighter, while positive"
+  " grade makes it bolder. The units are the same as in the Weight axis."
diff --git a/Lib/axisregistry/data/italic.textproto b/Lib/axisregistry/data/italic.textproto
new file mode 100644
index 0000000..e0b272b
--- /dev/null
+++ b/Lib/axisregistry/data/italic.textproto
@@ -0,0 +1,20 @@
+# ital based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_ital
+tag: "ital"
+display_name: "Italic"
+min_value: 0
+max_value: 1
+default_value: 0
+precision: -1
+fallback {
+  name: "Roman"
+  value: 0
+}
+fallback {
+  name: "Italic"
+  value: 1
+}
+fallback_only: true
+description:
+  "Adjust the style from roman to italic. This can be provided as"
+  " a continuous range within a single font file, like most axes, or as a"
+  " toggle between two roman and italic files that form a family as a pair."
diff --git a/Lib/axisregistry/data/monospace.textproto b/Lib/axisregistry/data/monospace.textproto
new file mode 100644
index 0000000..058f55d
--- /dev/null
+++ b/Lib/axisregistry/data/monospace.textproto
@@ -0,0 +1,24 @@
+# FOR TESTING ONLY [for now anyway]
+# MONO based on https://github.com/arrowtype/Recursive#variable-axes
+tag: "MONO"
+display_name: "Monospace"
+min_value: 0
+max_value: 1
+default_value: 0
+precision: -2
+fallback {
+  name: "Proportional"
+  value: 0
+}
+fallback {
+  name: "Monospace"
+  value: 1
+}
+fallback_only: false
+description:
+  "Adjust the style from proportional (natural widths, default) to"
+  " monospace (fixed width). Monospace is when all glyphs have the same"
+  " total character width, and more wide or narrow letter proportions to fill"
+  " the space such as a narrower 'w' or wider 'r.' Proportionally spaced"
+  "fonts have letters drawn with more typical proportions, and each glyph"
+  "takes up a unique amount of space on a line."
diff --git a/Lib/axisregistry/data/optical_size.textproto b/Lib/axisregistry/data/optical_size.textproto
new file mode 100644
index 0000000..0e7cbf3
--- /dev/null
+++ b/Lib/axisregistry/data/optical_size.textproto
@@ -0,0 +1,102 @@
+# opsz based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_opsz
+# fallbacks based on https://en.wikipedia.org/wiki/Traditional_point-size_names
+# plus discussion with dcrossland@
+tag: "opsz"
+display_name: "Optical size"
+min_value: 6
+max_value: 144
+default_value: 14
+precision: -1
+fallback {
+  name: "6pt"
+  value: 6
+}
+fallback {
+  name: "7pt"
+  value: 7
+}
+fallback {
+  name: "8pt"
+  value: 8
+}
+fallback {
+  name: "9pt"
+  value: 9
+}
+fallback {
+  name: "10pt"
+  value: 10
+}
+fallback {
+  name: "11pt"
+  value: 11
+}
+fallback {
+  name: "12pt"
+  value: 12
+}
+fallback {
+  name: "14pt"
+  value: 14
+}
+fallback {
+  name: "16pt"
+  value: 16
+}
+fallback {
+  name: "17pt"
+  value: 17
+}
+fallback {
+  name: "18pt"
+  value: 18
+}
+fallback {
+  name: "20pt"
+  value: 20
+}
+fallback {
+  name: "24pt"
+  value: 24
+}
+fallback {
+  name: "28pt"
+  value: 28
+}
+fallback {
+  name: "36pt"
+  value: 36
+}
+fallback {
+  name: "48pt"
+  value: 48
+}
+fallback {
+  name: "60pt"
+  value: 60
+}
+fallback {
+  name: "72pt"
+  value: 72
+}
+fallback {
+  name: "96pt"
+  value: 96
+}
+fallback {
+  name: "120pt"
+  value: 120
+}
+fallback {
+  name: "144pt"
+  value: 144
+}
+fallback_only: false
+description:
+  "Adapt the style to specific text sizes, specified in Points. At smaller"
+  " sizes, letters typically become optimized for more legibility, with loose"
+  " spacing/kerning and thicker strokes with less detail. At larger sizes,"
+  " letters are typically optimized for headlines with thinner strokes and"
+  " more detailed forms, and more extreme weights and widths. When used in"
+  " CSS, this axis is activated by default, but not all products/platforms"
+  " use it automatically."
diff --git a/Lib/axisregistry/data/slant.textproto b/Lib/axisregistry/data/slant.textproto
new file mode 100644
index 0000000..8694612
--- /dev/null
+++ b/Lib/axisregistry/data/slant.textproto
@@ -0,0 +1,16 @@
+# slnt based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt
+tag: "slnt"
+display_name: "Slant"
+min_value: -90
+max_value: 90
+default_value: 0
+precision: 0
+fallback {
+  name: "Default"
+  value: 0
+}
+fallback_only: false
+description:
+  "Adjust the style from upright to slanted, also known to typographers"
+  " as an 'oblique' style. Rarely, slant can work in the other direction,"
+  " called a 'backslanted' or 'reverse oblique' style."
diff --git a/Lib/axisregistry/data/softness.textproto b/Lib/axisregistry/data/softness.textproto
new file mode 100644
index 0000000..c850f74
--- /dev/null
+++ b/Lib/axisregistry/data/softness.textproto
@@ -0,0 +1,21 @@
+# SOFT based on https://github.com/undercasetype/Fraunces#variable-axes
+tag: "SOFT"
+display_name: "Softness"
+min_value: 0
+max_value: 100
+default_value: 0
+precision: -1
+fallback {
+  name: "Sharp"
+  value: 0
+}
+fallback {
+  name: "Soft"
+  value: 50
+}
+fallback {
+  name: "SuperSoft"
+  value: 100
+}
+fallback_only: false
+description: "Letterforms become more soft and rounded."
diff --git a/Lib/axisregistry/data/volume.textproto b/Lib/axisregistry/data/volume.textproto
new file mode 100644
index 0000000..119e8d3
--- /dev/null
+++ b/Lib/axisregistry/data/volume.textproto
@@ -0,0 +1,17 @@
+tag: "VOLM"
+display_name: "Volume"
+min_value: 0.0
+default_value: 0.0
+max_value: 100.0
+precision: 1
+fallback {
+  name: "Normal"
+  value: 0.0
+}
+fallback {
+  name: "Loud"
+  value: 100.0
+}
+description:
+  "Transforms serifs from glyphic to wedge shapes,"
+  " and adds a little more edge to other details."
diff --git a/Lib/axisregistry/data/weight.textproto b/Lib/axisregistry/data/weight.textproto
new file mode 100644
index 0000000..ffc6351
--- /dev/null
+++ b/Lib/axisregistry/data/weight.textproto
@@ -0,0 +1,49 @@
+# wght based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_wght
+tag: "wght"
+display_name: "Weight"
+min_value: 1
+max_value: 1000
+default_value: 400
+precision: 0
+fallback {
+  name: "Thin"
+  value: 100
+}
+fallback {
+  name: "Extra Light"
+  value: 200
+}
+fallback {
+  name: "Light"
+  value: 300
+}
+fallback {
+  name: "Regular"
+  value: 400
+}
+fallback {
+  name: "Medium"
+  value: 500
+}
+fallback {
+  name: "Semi Bold"
+  value: 600
+}
+fallback {
+  name: "Bold"
+  value: 700
+}
+fallback {
+  name: "Extra Bold"
+  value: 800
+}
+fallback {
+  name: "Black"
+  value: 900
+}
+fallback_only: false
+description:
+  "Adjust the style from lighter to bolder in typographic color, by varying"
+  " stroke thicknesses or other forms. This typically changes overall width,"
+  " and so may be used in conjunction with axes for Width and Grade (if"
+  " present)."
diff --git a/Lib/axisregistry/data/width.textproto b/Lib/axisregistry/data/width.textproto
new file mode 100644
index 0000000..da94492
--- /dev/null
+++ b/Lib/axisregistry/data/width.textproto
@@ -0,0 +1,55 @@
+# wdth based on https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_wdth
+tag: "wdth"
+display_name: "Width"
+min_value: 25
+max_value: 200
+default_value: 100
+precision: -1
+# Instance values based on https://docs.microsoft.com/en-us/typography/opentype/spec/os2#uswidthclass
+fallback {
+  name: "Super Condensed"
+  value: 25
+}
+fallback {
+  name: "Ultra Condensed"
+  value: 50
+}
+fallback {
+  name: "Extra Condensed"
+  value: 62.5
+}
+fallback {
+  name: "Condensed"
+  value: 75
+}
+fallback {
+  name: "Semi Condensed"
+  value: 87.5
+}
+fallback {
+  name: "Normal"
+  value: 100
+}
+fallback {
+  name: "Semi Expanded"
+  value: 112.5
+}
+fallback {
+  name: "Expanded"
+  value: 125
+}
+fallback {
+  name: "Extra Expanded"
+  value: 150
+}
+fallback {
+  name: "Ultra Expanded"
+  value: 200
+}
+fallback_only: false
+description:
+  "Adjust the style from narrower to wider, by varying the proportions of"
+  " counters, stems, and other forms including overall spacing and kerning."
+  " This typically changes the apparent weight (what typographers call"
+  " 'typographic color') in a subtle way, and so may be used in conjunction"
+  " with axes for Width and Grade (if present)."
diff --git a/Lib/axisregistry/data/wonky.textproto b/Lib/axisregistry/data/wonky.textproto
new file mode 100644
index 0000000..e383056
--- /dev/null
+++ b/Lib/axisregistry/data/wonky.textproto
@@ -0,0 +1,22 @@
+# WONK based on https://github.com/undercasetype/Fraunces#variable-axes
+tag: "WONK"
+display_name: "Wonky"
+min_value: 0
+max_value: 1
+default_value: 0
+precision: 0
+fallback {
+  name: "Non Wonky"
+  value: 0
+}
+fallback {
+  name: "Wonky"
+  value: 1
+}
+fallback_only: true
+description:
+  "Binary axis to control the subsitution of wonky forms along the"
+  " optical size axis. 'Off' (0) maintains more normalized letterforms,"
+  " such as the leaning n/m/h in roman, or the bulbous flags in the"
+  " b/d/h/k/l of the italic."
+  " In static fonts, this is also available as an OpenType Stylistic Set."
diff --git a/Lib/axisregistry/data/x_opaque.textproto b/Lib/axisregistry/data/x_opaque.textproto
new file mode 100644
index 0000000..608b48c
--- /dev/null
+++ b/Lib/axisregistry/data/x_opaque.textproto
@@ -0,0 +1,13 @@
+# XOPQ based on https://variationsguide.typenetwork.com/#xopq
+tag: "XOPQ"
+display_name: "X opaque"
+min_value: -1000
+max_value: 2000
+default_value: 88
+precision: 0
+fallback {
+  name: "Normal"
+  value: 88
+}
+description:
+  "Assigns a 'black' per mille value to each instance of the design space."
diff --git a/Lib/axisregistry/data/x_transparent.textproto b/Lib/axisregistry/data/x_transparent.textproto
new file mode 100644
index 0000000..4ec7bfe
--- /dev/null
+++ b/Lib/axisregistry/data/x_transparent.textproto
@@ -0,0 +1,13 @@
+# XTRA based on https://variationsguide.typenetwork.com/#xtra
+tag: "XTRA"
+display_name: "X transparent"
+min_value: -1000
+max_value: 2000
+default_value: 400
+precision: 0
+fallback {
+  name: "Normal"
+  value: 400
+}
+description:
+  "Assigns a 'white'”' per mille value to each instance of the design space."
diff --git a/Lib/axisregistry/data/x_transparent_figures.textproto b/Lib/axisregistry/data/x_transparent_figures.textproto
new file mode 100644
index 0000000..aac6944
--- /dev/null
+++ b/Lib/axisregistry/data/x_transparent_figures.textproto
@@ -0,0 +1,13 @@
+# XTFI based on https://variationsguide.typenetwork.com/#xtfi
+tag: "XTFI"
+display_name: "X transparent figures"
+min_value: -1000
+max_value: 2000
+default_value: 400
+precision: 0
+fallback {
+  name: "Normal"
+  value: 400
+}
+description:
+  "Assigns a 'white' per mille value to each instance of the design space."
\ No newline at end of file
diff --git a/Lib/axisregistry/data/y_opaque.textproto b/Lib/axisregistry/data/y_opaque.textproto
new file mode 100644
index 0000000..2db4df6
--- /dev/null
+++ b/Lib/axisregistry/data/y_opaque.textproto
@@ -0,0 +1,13 @@
+# YOPQ based on https://variationsguide.typenetwork.com/#yopq
+tag: "YOPQ"
+display_name: "Y opaque"
+min_value: -1000
+max_value: 2000
+default_value: 116
+precision: 0
+fallback {
+  name: "Normal"
+  value: 116
+}
+description:
+  "Assigns a 'black' per mille value to each instance of the design space."
diff --git a/Lib/axisregistry/data/y_transparent_ascender.textproto b/Lib/axisregistry/data/y_transparent_ascender.textproto
new file mode 100644
index 0000000..3613b69
--- /dev/null
+++ b/Lib/axisregistry/data/y_transparent_ascender.textproto
@@ -0,0 +1,13 @@
+# YTAS based on https://variationsguide.typenetwork.com/#ytas
+tag: "YTAS"
+display_name: "Y transparent ascender"
+min_value: 0
+max_value: 1000
+default_value: 750
+precision: 0
+fallback {
+  name: "Normal"
+  value: 750
+}
+description:
+  "Assigns a 'white' per mille value to each instance of the design space."
diff --git a/Lib/axisregistry/data/y_transparent_descender.textproto b/Lib/axisregistry/data/y_transparent_descender.textproto
new file mode 100644
index 0000000..6c756e3
--- /dev/null
+++ b/Lib/axisregistry/data/y_transparent_descender.textproto
@@ -0,0 +1,13 @@
+# YTDE based on https://variationsguide.typenetwork.com/#ytde
+tag: "YTDE"
+display_name: "Y transparent descender"
+min_value: -1000
+max_value: 0
+default_value: -250
+precision: 0
+fallback {
+  name: "Normal"
+  value: -250
+}
+description:
+  "Assigns a 'white' per mille value to each instance of the design space."
diff --git a/Lib/axisregistry/data/y_transparent_figures.textproto b/Lib/axisregistry/data/y_transparent_figures.textproto
new file mode 100644
index 0000000..4461f57
--- /dev/null
+++ b/Lib/axisregistry/data/y_transparent_figures.textproto
@@ -0,0 +1,13 @@
+# YTFI based on https://variationsguide.typenetwork.com/#ytfi
+tag: "YTFI"
+display_name: "Y transparent figures"
+min_value: -1000
+max_value: 2000
+default_value: 600 # this is NOT what TN defined, it's just a value that fits for Roboto Flex
+precision: 0
+fallback {
+  name: "Normal"
+  value: 600
+}
+description:
+  "Assigns a 'white' per mille value to each instance of the design space."
\ No newline at end of file
diff --git a/Lib/axisregistry/data/y_transparent_lowercase.textproto b/Lib/axisregistry/data/y_transparent_lowercase.textproto
new file mode 100644
index 0000000..73614ec
--- /dev/null
+++ b/Lib/axisregistry/data/y_transparent_lowercase.textproto
@@ -0,0 +1,13 @@
+# YTLC based on https://variationsguide.typenetwork.com/#ytlc
+tag: "YTLC"
+display_name: "Y transparent lowercase"
+min_value: 0
+max_value: 1000
+default_value: 500
+precision: 0
+fallback {
+  name: "Normal"
+  value: 500
+}
+description:
+  "Assigns a 'white' per mille value to each instance of the design space."
diff --git a/Lib/axisregistry/data/y_transparent_uppercase.textproto b/Lib/axisregistry/data/y_transparent_uppercase.textproto
new file mode 100644
index 0000000..83ab865
--- /dev/null
+++ b/Lib/axisregistry/data/y_transparent_uppercase.textproto
@@ -0,0 +1,13 @@
+# YTUC based on https://variationsguide.typenetwork.com/#ytuc
+tag: "YTUC"
+display_name: "Y transparent uppercase"
+min_value: -1000
+max_value: 1000
+default_value: 500
+precision: 0
+fallback {
+  name: "Normal"
+  value: 725
+}
+description:
+  "Assigns a 'white' per mille value to each instance of the design space."
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ebc1f1b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+# AxisRegistry Python Module
+
+This repository contains a python package providing easy access to the GF Axis Registry. Data was copied (and is kept is sync with) its original location at the `axisregistry` directory on the [`google/fonts`](https://github.com/google/fonts) git repo.
+
+As of March 4th, 2022, there's an ongoing plan to soon make this module the central place for updates on the data-set.
+
+## GF Axis Registry
+
+This package contains a collection of metadata source files that collectively form the Google Fonts Axis Registry.
+
+The live Axis Registry is at [fonts.google.com/variablefonts](https://fonts.google.com/variablefonts), and axis definitions are only final when they appear on that page.
+
+When the registry is updated here, a line like `axisregistry/axis_name.textproto` should be added to the `to_sandbox.txt` file.
+
+## Axis Metadata Fields
+
+*   `tag`
+    *   Tag for the axis used to specify an axis in `font-variation-settings` and CSS API requests.
+*   `display_name`
+    *   Readable name for the axis, generally the expanded form of `tag`.
+*   `min_value`
+    *   Lower bound of the axis. Inclusive.
+*   `max_value`
+    *   Upper bound of the axis. Inclusive.
+*   `default_value`
+    *   Default position of the aixs.
+*   `precision`
+    *   Describes the specificity at which an axis position can be specified.
+        For example, `0` means values must be specified as whole numbers while `-1` means values can be as precise as one decimal place.
+*   `fallback` (repeated)
+    *   Instance positions along the axis, such as wght 100,200,300,400,500,600,700,800,900.
+    *   A cross-product of fallback positions along all supported axes is created to support legacy browsers that lack variable font support.
+        For axes with CSS3 properties (such as [font-weight](https://drafts.csswg.org/css-fonts-3/#font-weight-prop)), the positions accessible
+        to CSS3 should be specified. For axes lacking CSS3 properties a legacy browser is limited to a single position and that position must
+        be at a fallback.
+*   `fallback_only`
+    *   Describes whether to only use fallback values when presenting to users.
+*   `description`
+    *   A description of the axis.
+
+## Why does Google Fonts have its own Axis Registry?
+
+We support a superset of the [OpenType axis registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg) axis set, and use additional metadata for each axis.
+Axes present in a font file but not in this registry will not function via our API.
+No variable font is expected to support all of the axes here.
+
+Any font foundry or distributor library that offers variable fonts has a implicit, latent, de-facto axis registry, which can be extracted by scanning the library for axes' tags, labels, and min/def/max values.
+While in 2016 Microsoft originally offered to include more axes in the OpenType 1.8 specification ([github.com/microsoft/OpenTypeDesignVariationAxisTags](https://github.com/microsoft/OpenTypeDesignVariationAxisTags)), as of August 2020, this effort has stalled.
+We hope more foundries and distributors will publish documents like this that make their axes explicit, to encourage of adoption of variable fonts throughout the industry, and provide source material for a future update to the OpenType specification's axis registry.
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..71dfb41
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,3 @@
+--index-url https://pypi.python.org/simple/
+protobuf==3.19.4
+-e .
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..5d6a1b1
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,52 @@
+# coding: utf-8
+#
+# Copyright 2022 Google LLC All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# See AUTHORS.txt for the list of Authors and LICENSE.txt for the License.
+from setuptools import setup
+
+# Read the contents of the README file
+with open('README.md') as f:
+    long_description = f.read()
+
+setup(
+    name="axisregistry",
+    use_scm_version={"write_to": "Lib/axisregistry/_version.py"},
+    url='https://github.com/googlefonts/axisregistry/',
+    description='A python API to access data from the Google Fonts variable fonts axis registry.',
+    long_description=long_description,
+    long_description_content_type='text/markdown',  # This is important!
+    author=('Felipe Sanches'),
+    author_email='juca@members.fsf.org',
+    package_dir={'': 'Lib'},
+    packages=['axisregistry'],
+    package_data={'axisregistry': [
+                     "data/*.textproto"
+                 ]
+    },
+    zip_safe=False,
+    classifiers=[
+        'Intended Audience :: Developers',
+        'Topic :: Text Processing :: Fonts',
+        'License :: OSI Approved :: Apache Software License',
+        'Operating System :: OS Independent',
+        'Programming Language :: Python :: 3'
+    ],
+    python_requires=">=3.7",
+    setup_requires=['setuptools_scm>=4,<6.1'],
+    install_requires=[
+        'protobuf'
+    ]
+)
diff --git a/tests/test_axisregistry_api.py b/tests/test_axisregistry_api.py
new file mode 100644
index 0000000..9e0b187
--- /dev/null
+++ b/tests/test_axisregistry_api.py
@@ -0,0 +1,10 @@
+from axisregistry import AxisRegistry
+
+
+def test_AxisRegistry():
+    registry = AxisRegistry()
+    assert 'GRAD' in registry.keys()
+    assert 'message' in registry['GRAD']
+    assert 'fallbacks' in registry['GRAD']
+    for axis_tag in registry.keys():
+        assert len(axis_tag) == 4
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..e337438
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,53 @@
+[tox]
+envlist = py37, py38, py39, coverage, flake8, pylint
+
+[gh-actions]
+python =
+    3.7: py37, coverage, flake8, pylint
+    3.8: py38, coverage, flake8, pylint
+    3.9: py39, coverage, flake8, pylint
+
+[testenv]
+deps =
+    pytest
+    coverage
+    -rrequirements.txt
+commands = coverage run -m pytest {posargs}
+
+[testenv:coverage]
+deps = coverage
+skip_install = true
+commands =
+    coverage report
+    coverage html
+
+[testenv:flake8]
+deps =
+    flake8
+commands = flake8 --count --show-source --statistics
+
+[testenv:pylint]
+deps =
+    pylint
+wont_fix = invalid-name,protected-access,too-many-lines
+maybe_someday = fixme,missing-docstring,line-too-long
+commands = pylint --disable={[testenv:pylint]wont_fix},{[testenv:pylint]maybe_someday} --ignore=axes_pb2.py Lib/axisregistry
+
+[flake8]
+select = E,F,W
+
+exclude =
+# Exclude the entire build directory:
+    build
+# Exclude these auto-generated files that should not be hand-edited:
+    Lib/axisregistry/*_pb2.py,
+# No need to traverse hidden directories such as .git, .tox
+    .*,
+# Exclude virtual environment directory:
+    venv*,
+# There's no value in checking cache directories
+    __pycache__,
+
+max-line-length=100
+ignore = 
+    E126, # continuation line over-indented for hanging indent
