Packages
avrora
0.21.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.2
0.24.1
0.24.0
0.23.0
0.22.0
0.21.1
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.17.0
0.16.0
0.15.0
0.14.1
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.1
0.9.0
0.8.1
0.8.0
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.0
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1-beta
0.1.0-beta
An Elixir library for working with Avro messages conveniently. It supports local schema files and Confluent® schema registry.
Current section
47 Versions
Jump to
Current section
47 Versions
Compare versions
7
files changed
+19
additions
-8
deletions
| @@ -35,4 +35,4 @@ | |
| 35 35 | {<<"optional">>,false}, |
| 36 36 | {<<"repository">>,<<"hexpm">>}, |
| 37 37 | {<<"requirement">>,<<"~> 2.9.3">>}]]}. |
| 38 | - {<<"version">>,<<"0.20.0">>}. |
| 38 | + {<<"version">>,<<"0.21.0">>}. |
| @@ -76,6 +76,6 @@ defmodule Avrora.Codec do | |
| 76 76 | <<72, 48, 48, 48, 48, 48, 48, 48, 48, 45, 48, 48, 48, 48, 45, 48, 48, 48, 48, 45, 48, 48, 48, |
| 77 77 | 48, 45, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 123, 20, 174, 71, 225, 250, 47, 64>> |
| 78 78 | """ |
| 79 | - @callback encode(payload :: map(), options :: keyword(Avrora.Schema.t())) :: |
| 79 | + @callback encode(payload :: binary() | map(), options :: keyword(Avrora.Schema.t())) :: |
| 80 80 | {:ok, result :: binary()} | {:error, reason :: term()} |
| 81 81 | end |
| @@ -49,7 +49,7 @@ defmodule Avrora.Codec.ObjectContainerFile do | |
| 49 49 | end |
| 50 50 | |
| 51 51 | @impl true |
| 52 | - def encode(payload, schema: schema) when is_map(payload) do |
| 52 | + def encode(payload, schema: schema) when is_binary(payload) or is_map(payload) do |
| 53 53 | with {:ok, schema} <- resolve(schema), |
| 54 54 | {:ok, body} <- Codec.Plain.encode(payload, schema: schema), |
| 55 55 | {:ok, schema} <- SchemaEncoder.to_erlavro(schema) do |
| @@ -26,7 +26,7 @@ defmodule Avrora.Codec.Plain do | |
| 26 26 | end |
| 27 27 | |
| 28 28 | @impl true |
| 29 | - def encode(payload, schema: schema) when is_map(payload) do |
| 29 | + def encode(payload, schema: schema) when is_binary(payload) or is_map(payload) do |
| 30 30 | with {:ok, schema} <- resolve(schema), do: do_encode(payload, schema) |
| 31 31 | end |
| 32 32 | |
| @@ -57,6 +57,7 @@ defmodule Avrora.Codec.Plain do | |
| 57 57 | encoded = |
| 58 58 | schema.lookup_table |
| 59 59 | |> :avro_binary_encoder.encode(schema.full_name, payload) |
| 60 | + |> List.wrap() |
| 60 61 | |> :erlang.list_to_binary() |
| 61 62 | |
| 62 63 | {:ok, encoded} |
| @@ -70,7 +70,7 @@ defmodule Avrora.Codec.SchemaRegistry do | |
| 70 70 | end |
| 71 71 | |
| 72 72 | @impl true |
| 73 | - def encode(payload, schema: schema) when is_map(payload) do |
| 73 | + def encode(payload, schema: schema) when is_binary(payload) or is_map(payload) do |
| 74 74 | with {:ok, schema} <- resolve(schema) do |
| 75 75 | schema = if is_nil(schema.id), do: {:error, :invalid_schema_id}, else: {:ok, schema} |
Loading more files…