Sign in

Mateusz Kubuszok

@kubuszok.com
221 followers 63 following 56 posts

Hearth Core Macro Hacker Blog @ kubuszok.com JVM-Scala Book @ leanpub.com/jvm-scala-book Chimney @ chimney.scalaland.io

PostsRepliesMedia
Mateusz Kubuszok @kubuszok.com · 30/09/2026
So... tomorrow Sonatype publishing limits start being applied. I've got quota increate as OSS, which lets me afford as much as 1 Hearth+Kindlings release per month. Need to spend it wisely!
000
Reposted by Mateusz Kubuszok
Scala Days @scaladays.org · 24/09/2026
Mateusz Kubuszok shares the engineering lessons behind SGE, covering Java ecosystem porting, cross-platform tooling, Scala Native, and native dependencies. Learn more: scaladays.org/sessio... 12-13 October. Berlin
Promotional graphic with a portrait of a speaker, a “SPEAKER” label on the left, “ Mateusz Kubuszok” on top, with the ScalaDays logo at the bottom.Red promotional graphics with a white “left Bracket” icon. Text reads: Scala’s LibGDX: A Report from the TrenchesRed promotional graphics for ScalaDays, featuring a large white “left bracket”. Text reads: 2026 Scala Days Berlin, with the ScalaDays icon in the top right.
011
Mateusz Kubuszok @kubuszok.com · 02/09/2026
Chimney 2.0.0-RC1 just dropped, with the final improvements and targeting 3.9.0 - if no serious issues are found it will be promoted to 2.0.0! github.com/scalalandio/...
github.com
Release v2.0.0-RC1 · scalalandio/chimney
Important Since Chimney got affected by 3.7.0 change in givens resolution we had to analyze the possible ways of fixing the issue. While there is a temporary workaround the proper fix requires rele...
020
Reposted by Mateusz Kubuszok
Matej Cerny @matejcerny.bsky.social · 03/08/2026
There is a new #Scala 3 optics library worth checking out: cats-eo. It unifies optic families under a single trait, features macro derivation backed by Hearth and delivers massive performance gains (such as traversals running up to 11x faster compared to Monocle).
121
Mateusz Kubuszok @kubuszok.com · 14/07/2026
This migration was an opportunity to benchmark the compilation and improve a thing or 2 in Hearth, so we're dropping new releases of: Hearth: github.com/kubuszok/hea... Kindlings: github.com/kubuszok/kin...
github.com
Release 0.4.1 - Compile-Time Performance, 30+ Fixes, and copyMethod / Expr.annotated / Type.Lazy APIs · kubuszok/hearth
0.4.1 is a polish and quality-of-life release. Chimney is now Hearth-powered — and it got there on 0.4.0, without waiting for anything in this release; where it met a rough edge it simply worked ar...
000
Mateusz Kubuszok @kubuszok.com · 14/07/2026
New Chimney(s) dropped: 1.x line supporting 2.12/2.13/3.3: github.com/scalalandio/... and 2.0.0-M4 supporting 2.13/3.8 freshly migrated to Hearth: github.com/scalalandio/...
github.com
Release v1.11.0 · scalalandio/chimney
NoteThis release was sponsored completely by users' contributions! It will also probably be the last release in 1.x line where I contributed anything, and where changes were ported into the 2.x lin...
000
Mateusz Kubuszok @kubuszok.com · 26/06/2026
There are also new releases of refined-compat and pipez, migrated to newest Hearth 0.4.0: github.com/kubuszok/ref... github.com/kubuszok/pip... And as a bonus new scala-newtype-compat with fixes to JDK version used for each Scala version: github.com/kubuszok/sca...
github.com
Release 0.2.0 - Hearth 0.4.0 and the sbt 2.0 Migration · kubuszok/refined-compat
The second release of refined-compat — compile-time refinement validation for refined types on both Scala 2.13 and Scala 3, powered by Hearth's Expr.semiEval. This is a maintenance release. There a...
000
Mateusz Kubuszok @kubuszok.com · 26/06/2026
These new abilities power a new Kindlings release, which adds Hearth-bases: - macwire-like DI - mocking - lenses - cats-tagless derivation - Tapir module for OpenAPI rendering with Jsoniter that would not pull-in Circe! and more! github.com/kubuszok/kin...
github.com
Release 0.3.0 - Compile-time DI, mocking, optics & OpenAPI-jsoniter modules, cats-tagless derivation, built on Hearth 0.4.0 · kubuszok/kindlings
Four brand-new Hearth-based modules — compile-time dependency injection (macwire-style), mocking (ScalaMock-style), optics (quicklens-style), and a Circe-free OpenAPI jsoniter serializer — plus a n...
100
Mateusz Kubuszok @kubuszok.com · 26/06/2026
- smart A <=> Expr[A] transformations - and more! github.com/kubuszok/hea...
github.com
Release 0.4.0 - Method Builder Chain, DestructuredExpr, AnonymousInstance, ExprCodec.derived, Union Soundness, and Call-Site Scopes · kubuszok/hearth
After the 0.3.x line wrapped up with the "more exciting things to come in 0.4.0!" promise, here it is — the release where Hearth grew the building blocks for real derivation and metaprogramming lib...
100
Mateusz Kubuszok @kubuszok.com · 26/06/2026
Hearth 0.4.0 once again is pushing the limits of what you can do with macros (without going insane): - reworked method callers that could let you build every call - expression destructuring enabling quicklens-like patterns - creating anonymous instance of an arbitrary type
100
Mateusz Kubuszok @kubuszok.com · 19/06/2026
On one hand, yes, you should use SNAPSHOTs for testing, and if they are taxing Maven Central, you can move them elsewhere On the other, I made 4 legit releases last week. Result: 505/80 MB (600%), 3k/1k files (300%), 4/7 releases. I hope OSS status helps or Hearth, Kindlings any many more are done
110
Mateusz Kubuszok @kubuszok.com · 19/06/2026
There was no e-mail, and I learned it by accident, but I feel all #Scala OSS devs should learn ASAP: Maven is introducing publishing limits. We most likely will have to apply for exemption: - www.sonatype.com/blog/open-pu... - central.sonatype.org/publish/mave...
sonatype.com
Open Publishing, Commercial Scale
Open source registries are evolving for commercial-scale use. Learn why Maven Central publishing limits aim for open access and sustainable infrastructure.
121
Mateusz Kubuszok @kubuszok.com · 11/06/2026
And another thing it enabled was this first release of refined-compat 0.1.0 - where we kicked off the work to make Refined library macros cross-compilable for Scala 2.13 and 3! github.com/kubuszok/ref...
github.com
Release 0.1.0 - Compile-Time Refined Validation on Scala 3 · kubuszok/refined-compat
The first release of refined-compat — compile-time refinement validation for refined types on Scala 3, powered by Hearth's Expr.semiEval. On Scala 2, refined's import eu.timepit.refined.auto._ vali...
010
Mateusz Kubuszok @kubuszok.com · 11/06/2026
What it unlocked was a new release of Kindlings 0.2.0 where derivation configs start to be parsed by a macro -> so less runtime overhead to dispatch the behavior -> better performance! github.com/kubuszok/kin...
github.com
Release 0.2.0 - Diff derivation, full Cats algebra, benchmarks, documentation site, and a new logo · kubuszok/kindlings
The biggest Kindlings release so far: a new structural-diff module, a much larger Cats type class roster, a single derived-only API, a documentation site with runnable examples, JMH benchmarks agai...
110
Mateusz Kubuszok @kubuszok.com · 11/06/2026
Today we managed to push out Hearth 0.3.1 with support for evaluating Expr values without an actual compilation (semiEval). github.com/kubuszok/hea...
github.com
Release 0.3.1 - Expr.semiEval, Type.CtorK1, JDK Futureproofing, and a New Logo · kubuszok/hearth
The 0.3.1 release adds a few things to the 0.3.x line, that I didn't waned to wait with, but also ones that should not break existing libraries based on 0.3.0. (More exciting things to come in 0.4....
100
Mateusz Kubuszok @kubuszok.com · 27/05/2026
The recording of my @scalar-conf.com presentation about civilising #macros in #Scala is online! youtu.be/Hbknc_dc4KQ
youtu.be
Can we have the Standard Library for Macros? by Mateusz Kubuszok | Scalar 2026
YouTube video by SoftwareMill
000
Reposted by Mateusz Kubuszok
Matej Cerny @matejcerny.bsky.social · 02/04/2026
Hearth aka the Scala unified macro for 2.13 and 3 has a new version out! 🎉 I'm definitely no macro expert, so go read the changelog yourself to see all the magic. 🪄 It's huge! github.com/kubuszok/hea... #scala
github.com
Release 0.3.0 - Standard Extensions, Union Types, Rules, Flame Graphs, MIO Timeouts, hearth-munit, and Much More · kubuszok/hearth · GitHub
This is the biggest Hearth release so far: a major feature release that introduces Standard Extensions — a pluggable type-inspection framework — along with union types support, rule-based derivatio...
021
Mateusz Kubuszok @kubuszok.com · 27/03/2026
When I also mention that I vibe coded Scala 3 plugin to use Scala Newtypes on Scala 3 (who knows, maybe it will even work!), this was my most productive conference so far! github.com/kubuszok/sca... @scalar-conf.com, most inspiring #scala conference!
github.com
GitHub - kubuszok/scala-newtype-compat: Scala compiler plugin to let you use Scala Newtype on Scala 3
Scala compiler plugin to let you use Scala Newtype on Scala 3 - kubuszok/scala-newtype-compat
000
Mateusz Kubuszok @kubuszok.com · 27/03/2026
The first release of Kindlings is also out! github.com/kubuszok/kin...
github.com
Release 0.1.0 — Type class derivation that just works, on Scala 2.13 and 3 · kubuszok/kindlings
We're excited to announce the first release of Kindlings — a collection of type class derivation modules built on Hearth that are cross-compiled for Scala 2.13 and Scala 3, on JVM, Scala.js, and Sc...
100
Mateusz Kubuszok @kubuszok.com · 27/03/2026
Hearth 0.3.0 just dropped! github.com/kubuszok/hea... and right behind it...
github.com
Release 0.3.0 - Standard Extensions, Union Types, Rules, Flame Graphs, MIO Timeouts, hearth-munit, and Much More · kubuszok/hearth
This is the biggest Hearth release so far: a major feature release that introduces Standard Extensions — a pluggable type-inspection framework — along with union types support, rule-based derivatio...
100
Mateusz Kubuszok @kubuszok.com · 27/03/2026
I wanted to release Hearth 0.3.0 after Scala 3.3.8 is out, and Kindlings 0.1.0 after that. But overwhelmingly positive reception (and a horse head in my bed) convinced my to release them much earlier, so...
121
Mateusz Kubuszok @kubuszok.com · 27/03/2026
Here are slides from by talk at @scalar-conf.com about #macros in #scala mateuszkubuszok.github.io/ScalaStandar...
mateuszkubuszok.github.io
Can we have the Standard Library for Macros?
020
Mateusz Kubuszok @kubuszok.com · 25/03/2026
Last year: - at @scalar-conf.com I introduced sanely-automatic derivation with macros - at @scaladays.org I showed that macros in #scala can be tamed Now: I wanted to repeat the latter prez but with recent developments I had to update it! Join me on @scalar-conf.com to see new GOTY edition!
010
Mateusz Kubuszok @kubuszok.com · 10/03/2026
Thanks to Guo Yubin Chimney now supports NamedTuples! Grab it at: - github.com/scalalandio/... - github.com/scalalandio/...
github.com
Release v1.9.0 · scalalandio/chimney
Changelog: Add supports for NamedTuple (#766). by @ETCHKILI in #852
010
Mateusz Kubuszok @kubuszok.com · 06/03/2026
One more proof by construction that we can improve derivation in #scala with #macros: github.com/nguyenyou implemented sanely automatic derivation for Circe, and got some really nice numbers. github.com/nguyenyou/ci...
github.com
GitHub - nguyenyou/circe-sanely-auto: Sanely-automatic Encoder/Decoder derivation for Circe on Scala 3
Sanely-automatic Encoder/Decoder derivation for Circe on Scala 3 - nguyenyou/circe-sanely-auto
010
Mateusz Kubuszok @kubuszok.com · 27/02/2026
I was drinking beer and approving the runs on the phone (via Happy) xD What I saw was really encouraging. How encouraging? This is what I have one week later: github.com/MateuszKubus...
github.com
010
Mateusz Kubuszok @kubuszok.com · 27/02/2026
Last week I went out for a Friday night beer with friends, and left Claude running. After recent batches of improvements I hoped that Hearth was finally at the stage when I would be able to write a whole type class derivation with no bugs in my macro utilities. #scala #macros
100
Mateusz Kubuszok @kubuszok.com · 22/02/2026
I wish cross-compilable macros, with potential to provide UX that mops the floor with all these shapeless/mirrors based-libraries were not just a hypothetical possibility... Oh, wait. Scala 2.13: scastie.scala-lang.org/MateuszKubus... Scala 3: scastie.scala-lang.org/MateuszKubus...
010
Mateusz Kubuszok @kubuszok.com · 18/02/2026
Claude just finished writing me a sbt codegen, which generates >17 000 lines of code of macros and compiler plugins... which would be expanded in other macros to provide cross-compilable type constructor representation. When I started Hearth I didn't expect to go so meta
040
Mateusz Kubuszok @kubuszok.com · 28/01/2026
On this day ten years ago, I gave my first public presentation... Fast forward ten years, I still suck :) kubuszok.com/presentation...
kubuszok.com
My presentations
Personally, just a
020
Reposted by Mateusz Kubuszok
Scala Days @scaladays.org · 12/12/2025
🔍 A thoughtful, down-to-earth look at what a shared macro library could mean for Scala developers. Here’s "Can we have the Standard Library for Macros?" by Mateusz Kubuszok
youtube.com
Mateusz Kubuszok: Can we have the Standard Library for Macros? [Scala Days 2025]
Do you like it when compiler generates the boring code for you? Fast, mundane, boring-but-error-prone code? Do you need to implement such a code generator yourself? Have you found out that Shapeless/Mirrors bend your brain a bit too much? Congratulations! You might have a valid use case for writing
011
Reposted by Mateusz Kubuszok
The Scala Programming Language @scala-lang.org · 12/12/2025
🔍 A thoughtful, down-to-earth look at what a shared macro library could mean for Scala developers. Here’s "Can we have the Standard Library for Macros?" by Mateusz Kubuszok
youtube.com
Mateusz Kubuszok: Can we have the Standard Library for Macros? [Scala Days 2025]
Do you like it when compiler generates the boring code for you? Fast, mundane, boring-but-error-prone code? Do you need to implement such a code generator yourself? Have you found out that Shapeless/Mirrors bend your brain a bit too much? Congratulations! You might have a valid use case for writing
021
Reposted by Mateusz Kubuszok
Jakub Kozłowski @kubukoz.mstdn.party.ap.brid.gy · 06/12/2025
New video, with Łukasz Biały from @scala_space! www.youtube.com/watch?v=K_omndY1ifI
011
Mateusz Kubuszok @kubuszok.com · 26/11/2025
@scaladays.org videos are online! If you wish #scala #macros were a bit easier, and wonder what "this Hearth library" is about, go see: youtu.be/VOdeXTpw3m0
youtu.be
Mateusz Kubuszok: Can we have the Standard Library for Macros? [Scala Days 2025]
YouTube video by Scala Days Conferences
072
Reposted by Mateusz Kubuszok
Scala Times @scalatimes.com · 22/11/2025
Scala Times Issue #604 - scalatimes.com/f99e9094b8
032
Mateusz Kubuszok @kubuszok.com · 20/11/2025
Hearth 0.2.0 just dropped continuing the quest for user-friendly macros. #scala #macros github.com/MateuszKubus...
github.com
Release 0.2.0 - Overall improvements, ValDefs builders and cache, Better Printers, more robust Cross Quotes and More · MateuszKubuszok/hearth
This release delivers the full scope planned for the 0.2.x milestone: refining everything introduced in 0.1.0, strengthening stability, improving ergonomics, and expanding documentation and tooling...
020
Reposted by Mateusz Kubuszok
Scalar Conference @scalar-conf.com · 17/11/2025
Welcome Mateusz Kubuszok as the #Scalarconf 2026 speaker! 🎙️ Can we have the Standard Library for Macros? 🎟️ Grab your ticket here: scalar-conf.com/tickets #scala #scalarconf #functionalprogramming
071
Reposted by Mateusz Kubuszok
Matej Cerny @matejcerny.bsky.social · 04/11/2025
This is probably the most complete tutorial on typeclasses in Scala 3, it's basically a short book. Bookmark it, as it has everything: givens, derivation, mirrors, inline defs, macros... you name it. #scala kubuszok.com//2025/sanely...
051
Mateusz Kubuszok @kubuszok.com · 03/11/2025
#scala #metaprogramming #typeclasses because, of course, I forgot
030
Mateusz Kubuszok @kubuszok.com · 03/11/2025
It also reminded my why, I stopped - putting everything I know into 1 writeup is such a PITA but I do not want it any other way.
000
Mateusz Kubuszok @kubuszok.com · 03/11/2025
I haven't blogged in a while, but this needed to be written: kubuszok.com/2025/sanely-...
kubuszok.com
Sanely-automatic derivation - or how type class derivation works and why everyone else is doing it wrong
In Scala, we generate quite a lot of code. A lot of that involves the compiler generating so-called type class instances. This mechanism is quite widespread, yet, very few people actually understand i...
151
Mateusz Kubuszok @kubuszok.com · 21/10/2025
Chimney 2.0.0-M2 for 2.13.17+ and 3.7+ just landed! * sanely-automatic derivation backported to 2.13 * aligned with featues/bugfixes up till 1.8.2 Try out, if you had any issues with semiauto on Scala 3.7 or if you want to test sanely-auto on 2.13! github.com/scalalandio/...
github.com
Release v2.0.0-M2 · scalalandio/chimney
Important Since Chimney got affected by 3.7.0 change in givens resolution we had to analyze the possible ways of fixing the issue. While there is a temporary workaround the proper fix requires rele...
000
Mateusz Kubuszok @kubuszok.com · 18/10/2025
Great thanks to all organizers of @scalaio.bsky.social! It was a great experience I am happy I could be there.
030
Mateusz Kubuszok @kubuszok.com · 03/10/2025
The first release is done, better macros are possible github.com/MateuszKubus...
github.com
Release 0.1.0 - Inintial release · MateuszKubuszok/hearth
It took longer than I hoped but 0.1.0 is live and with some scaffolded documentation. There are some gaps in the documentation, e.g. no examples for utilities usage, no mention of sources and debug...
020
Reposted by Mateusz Kubuszok
Scala.IO @scalaio.bsky.social · 25/09/2025
Can we have the Standard Library for Macros? (@kubuszok.com): makes simple things simple, and hard things (at least) possible 🚀 Event Sourcing is just a foldLeft on Events and a decide function! Or is it? (Matthieu Baechler & Thomas Hilaire): master of immutability but UPDATE db all day long ? 👀
021
Mateusz Kubuszok @kubuszok.com · 21/08/2025
Thank you everyone who came to my talk at @scaladays.org ! It was amazing to be here! You can find my slides at mateuszkubuszok.github.io/ScalaStandar...
040
Mateusz Kubuszok @kubuszok.com · 10/08/2025
That #Scala code does something, that many considered impossible. Could you guess why? github.com/MateuszKubus...
github.com
hearth/hearth-tests/src/main/scala/hearth/demo/ShowMacrosImpl.scala at f4b7828eaecd6b154514832a51b1756f6a29fd37 · MateuszKubuszok/hearth
The first Scala macros' standard library. Contribute to MateuszKubuszok/hearth development by creating an account on GitHub.
132
Mateusz Kubuszok @kubuszok.com · 25/07/2025
Feedback reaches authors faster when they don't have to use a mix of "search by string in random social media" (no mentions, hashtags, etc) combined with Google Translate :P Discussions, issues and PRs are welcome at github.com/scalalandio/...
github.com
GitHub - scalalandio/chimney: Scala library for boilerplate-free, type-safe data transformations
Scala library for boilerplate-free, type-safe data transformations - scalalandio/chimney
000
Mateusz Kubuszok @kubuszok.com · 16/07/2025
If you're missing some feature in Chimney - contribute it! github.com/scalalandio/...
github.com
The future of Chimney · scalalandio chimney · Discussion #762
TL;DR - I intent to develop only what is necessary to keep the library working (when changes in the compiler would make the currently working code make it no-longer working code, like with 3.7-give...
031
Mateusz Kubuszok @kubuszok.com · 16/07/2025
Some time ago I made a presentation that wasn't recorded... But at least some of the points from it could be showcased with this gist gist.github.com/MateuszKubus...
gist.github.com
Newtypes and tagged types
Newtypes and tagged types. GitHub Gist: instantly share code, notes, and snippets.
021