RepoJournal
Elixir & Phoenix

Elixir & Phoenix

Elixir, Phoenix, LiveView, and Ecto - the BEAM web stack

Keep up with Elixir & Phoenix in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Elixir & Phoenix Full archive →

The Wire · Showcase

ELIXIR TIGHTENS ATOM SAFETY WITH NEW VALIDATION FUNCTIONS

By RepoJournal · Filed · About Elixir & Phoenix

Elixir core shipped three complementary functions that finally give you safe, typed ways to convert strings and lists to atoms without opening yourself to DoS attacks.

The biggest story across the stack is the soft-deprecation of String.to_atom/1 and the arrival of three new functions designed to close the atom safety hole [1] [2]. String.to_existing_atom/2 validates against a list of allowed atoms and compiles down to pattern matching when that list is static, making it faster than the old unsafe path [2]. List.to_existing_atom/2 does the same for lists [3], and to_unsafe_atom/1 replaces the dangerous old to_atom/1 when you genuinely need it [1]. The type system now narrows return types properly, so you get `:foo | :bar` instead of `:atom`, which catches more bugs at compile time. This is production-ready and you should audit your codebase for to_atom/1 calls immediately. On the Phoenix side, LiveView v1.2.3 shipped a quick fix for TypeScript declaration files being in the wrong folder [4] [5], and the core team documented module requirements for custom JSON libraries [6]. Ecto added configurable warnings and exceptions for writes to non-writable fields [7], letting you catch silent failures that masquerade as successful updates. Dependencies are stable: Babel bumped to 7.29.6 [8] and markdown-it to 14.2.0 [9].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] Add to_unsafe_atom/1 and soft-deprecate to_atom/1 ↗ elixir-lang/elixir
  2. [2] Add String.to_existing_atom/2 to validate against a list of allowed atoms ↗ elixir-lang/elixir
  3. [3] Add List.to_existing_atom/2 to validate against a list of allowed atoms ↗ elixir-lang/elixir
  4. [4] v1.2.3 ↗ phoenixframework/phoenix_live_view
  5. [5] fix typescript declaration file path phoenixframework/phoenix_live_view
  6. [6] Document module requirements for json_library() (see PR #6481) ↗ phoenixframework/phoenix
  7. [7] Add ability to configure the behavior of writing to a non-writable field ↗ elixir-ecto/ecto
  8. [8] Bump @babel/core from 7.27.4 to 7.29.6 ↗ phoenixframework/phoenix_live_view
  9. [9] Bump markdown-it from 14.1.1 to 14.2.0 ↗ phoenixframework/phoenix_live_view

Quick answers

What shipped in Elixir & Phoenix on June 17, 2026?
Elixir core shipped three complementary functions that finally give you safe, typed ways to convert strings and lists to atoms without opening yourself to DoS attacks. In total, 15 commits, 15 pull requests, and 2 releases landed.
Who contributed to Elixir & Phoenix on June 17, 2026?
4 developers shipped this update, including sabiwara, saleyn, green-david, and dependabot[bot].
What were the notable Elixir & Phoenix updates?
Add to_unsafe_atom/1 and soft-deprecate to_atom/1, Add String.to_existing_atom/2 to validate against a list of allowed atoms, and Add List.to_existing_atom/2 to validate against a list of allowed atoms.

More from Elixir & Phoenix

Daily updates, in your inbox

Follow Elixir & Phoenix

Keep up with Elixir & Phoenix in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?

We use privacy-friendly analytics (Google Analytics, IP-anonymized) to see which pages help readers. No ads, and we never sell your data. See our Privacy Policy.