key_value_parser alternatives and similar packages
Based on the "Lexical analysis" category.
Alternatively, view key_value_parser alternatives based on common mentions on social networks and blogs.
-
lex_luthor
Lexer in Elixir. Lexer in Elixir. Lexer in Elixir. Lexer in Elixir. Lexer in Elixir. Lexer in Elixir. Lexer in Elixir. Lexer in Elixir. Lexer in Elixir. Lexer in Elixir.
CodeRabbit: AI Code Reviews for Developers

Do you think we are missing an alternative of key_value_parser or a related project?
README
Logfmt for Elixir
A simple logfmt decoder for elixir that uses binary scanning for high performance.
Brought to you by Timber.io. This library is used to parse millions of log lines every day.
Installation
# mix.exs
def deps do
[{:timber_logfmt, "~> 1.0"}]
end
Usage
Using = as the delimiter
Logfmt.parse("key1=value1 key2=\"This is a quoted value\" key3=1")
=> {:ok, [key1: "value1", key2: "This is a quoted value", key3: "1"]}
Using : as the delimiter
Logfmt.parse("key1:value1 key2:\"This is a quoted value\" key3:1 key4")
=> {:ok, [key1: "value1", key2: "This is a quoted value", key3: "1", key4=true]}
Notable logfmt deviations
We deviated slightly from the logfmt spec:
- We accept
:
as a delimited in addition to=
- We do not cast or coerce values. All values will parsed into a string. This is because logfmt does not have any syntax for types. Ex:
key:true
could evaluate totrue
or"true"
. - Values are decoded into a
Keyword.t
to preserve the order. - Valueless keywords will error. In the context of logging, this makes virtually any string valid, which is not ideal.
- Unless keys are quoted, the charaters allowed are restricted.
Shoutout
If you appreciate this library, head over to timber.io.
License
Released into the public domain (see UNLICENSE
).
Optionally available under the ISC License (see LICENSE
),
meant especially for jurisdictions that do not recognize public domain works.
*Note that all licence references and agreements mentioned in the key_value_parser README section above
are relevant to that project's source code only.