{"id":17600264,"url":"https://github.com/mtwilliams/blazon","last_synced_at":"2025-07-04T19:38:01.851Z","repository":{"id":57479891,"uuid":"57254870","full_name":"mtwilliams/blazon","owner":"mtwilliams","description":":beginner: Declarative abstract serializers for Elixir.","archived":false,"fork":false,"pushed_at":"2017-02-21T23:36:09.000Z","size":28,"stargazers_count":4,"open_issues_count":23,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-15T01:28:22.286Z","etag":null,"topics":["dsl","elixir","serialization"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtwilliams.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-27T23:14:02.000Z","updated_at":"2023-02-10T11:35:21.000Z","dependencies_parsed_at":"2022-09-26T17:41:31.833Z","dependency_job_id":null,"html_url":"https://github.com/mtwilliams/blazon","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwilliams%2Fblazon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwilliams%2Fblazon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwilliams%2Fblazon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtwilliams%2Fblazon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtwilliams","download_url":"https://codeload.github.com/mtwilliams/blazon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221092196,"owners_count":16754660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dsl","elixir","serialization"],"created_at":"2024-10-22T11:10:14.503Z","updated_at":"2024-10-22T11:10:15.060Z","avatar_url":"https://github.com/mtwilliams.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blazon\n\n[![Continuous Integration](https://img.shields.io/travis/mtwilliams/blazon/master.svg)](https://travis-ci.org/mtwilliams/blazon)\n[![Code Coverage](https://img.shields.io/coveralls/mtwilliams/blazon/master.svg)](https://coveralls.io/github/mtwilliams/blazon)\n[![Documentation](http://inch-ci.org/github/mtwilliams/blazon.svg)](http://inch-ci.org/github/mtwilliams/blazon)\n[![Package](https://img.shields.io/hexpm/dt/blazon.svg)](https://hex.pm/packages/blazon)\n\nBlazon allows you to quickly build abstract serializers in a declarative fashion. It also has a large focus on composition, allowing you to quickly build and reuse common functionality for things like pagination, automatic preloading, and so on in a few lines of code. Furthermore, Blazon is format agnostic so you can expose your complex object heirarchies in JSON, XML, UBF, CSV, or whatever you want without changing your presentation logic.\n\nAlthough Blazon has great test coverage, its design is nowhere near final and is rapidly changing, making it **unsuitable for production**.\n\n## Example\n\n```elixir\ndefmodule Person.Serializer do\n  use Blazon.Serializable\n\n  field :name\n  field :title\n  field :age\nend\n\nBlazon.json(Person.Serializer, %{name: \"John Cleese\", title: \"Minister of Silly Walks\", age: 42}, except: ~w(age)a)\n```\n\n## Installation\n\n  1. Add `blazon` to your list of dependencies in `mix.exs`:\n\n  ```elixir\n  def deps do\n    [{:blazon, \"~\u003e 0.0.1\"}]\n  end\n  ```\n\n  2. Drink your :tea:\n\n  3. That's it!\n\n## Usage\n\n### First Steps\n\n...\n\n### Options\n\n...\n\n### Embedding\n\n...\n\n### Linking\n\n...\n\n### Composition\n\n...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtwilliams%2Fblazon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtwilliams%2Fblazon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtwilliams%2Fblazon/lists"}