Boundary - enforcing boundaries in Elixir projects

Started working on the support for managing external dependencies. The idea is that you can do something like this:

defmodule MySystemWeb do
  use Boundary, externals: [ecto: [Ecto.Changeset]]
end

to restrain ecto modules only to Ecto.Changeset (and Ecto.Changeset.* if such exist). Other external deps are unrestrained.

Demo:

The code is pushed to GH master, but not yet published on hex, since I’d like to get feedback on the interface. Docs for the new feature are available here.

8 Likes