# Library

Published articles for Library.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## TanStack Charts Introduced with a Framework Agnostic Grammar of Graphics for TypeScript

DevFeed: [TanStack Charts Introduced with a Framework Agnostic Grammar of Graphics for TypeScript](<https://devfeed.tech/articles/tanstack-charts-introduced-with-a-framework-agnostic-grammar-of-graphics-for-typescript-41299.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/tanstack-charts-alpha-introduced/>)

Author: Daniel Curtis

Published: 2026-09-17T05:53:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Library](<https://devfeed.tech/topics/library.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Graphics](<https://devfeed.tech/topics/graphics.md>), [Frameworks](<https://devfeed.tech/topics/frameworks.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [data-visualization](<https://devfeed.tech/tags/data-visualization.md>), [development](<https://devfeed.tech/tags/development.md>), [framework](<https://devfeed.tech/tags/framework.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [introduced](<https://devfeed.tech/tags/introduced.md>), [library](<https://devfeed.tech/tags/library.md>), [news](<https://devfeed.tech/tags/news.md>), [react](<https://devfeed.tech/tags/react.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [tanstack-charts-alpha-introduced](<https://devfeed.tech/tags/tanstack-charts-alpha-introduced.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [visualization](<https://devfeed.tech/tags/visualization.md>), [vue-js](<https://devfeed.tech/tags/vue-js.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

TanStack Charts is a new framework-agnostic TypeScript visualization library that uses a grammar-of-graphics approach instead of fixed chart types. It is in Alpha, has about 160,000 weekly downloads, and supports multiple frameworks and environments, though it is not yet stable for production use.

### Source excerpt

TanStack Charts is a new, framework-agnostic visualization library for TypeScript. It allows developers to create visualizations by composing various elements instead of using fixed chart types. Currently in Alpha, it has about 160,000 weekly downloads. The library supports multiple frameworks and is designed for a variety of environments, though it is not yet stable for production use. By Daniel Curtis

## PDFx - Extract references and metadata from PDF documents, and download all referenced PDFs

DevFeed: [PDFx - Extract references and metadata from PDF documents, and download all referenced PDFs](<https://devfeed.tech/articles/pdfx-extract-references-and-metadata-from-pdf-documents-and-download-all-referenced-pdfs-31874.md>)

Original publisher: [Read original article](<https://www.metachris.dev/pdfx/>)

Author: Chris Hager

Published: 2026-09-17T02:48:44.791916Z

Content type: tutorial

Language: en

Sources: [Chris Hager](<https://devfeed.tech/sources/chris-hager.md>)

Topics: [pdf](<https://devfeed.tech/topics/pdf.md>), [Python](<https://devfeed.tech/topics/python.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [JSON](<https://devfeed.tech/topics/json.md>), [pip](<https://devfeed.tech/topics/pip.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [apache](<https://devfeed.tech/tags/apache.md>), [broken-links](<https://devfeed.tech/tags/broken-links.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [download](<https://devfeed.tech/tags/download.md>), [github](<https://devfeed.tech/tags/github.md>), [install](<https://devfeed.tech/tags/install.md>), [json](<https://devfeed.tech/tags/json.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

PDFx is an Apache-licensed open-source tool that extracts references and metadata from PDF documents. It detects PDF, URL, arXiv, and DOI references, can download referenced PDFs in parallel, identify broken hyperlinks, extract PDF text, and output results as text or JSON. It is available as a command-line tool and Python package, with support for local and online PDFs.

### Source excerpt

Reading over this paper and its references recently, I thought it would be great to be able to download all the references at once... This inspired me to write a little tool to do just that, and now it's done and released under the Apache open source license: https://github.com/metachris/pdfx Features Extract references and metadata from a given PDF Detects pdf, url, arxiv and doi references Fast, parallel download of all referenced PDFs Find broken hyperlinks (using the -c flag) (more) Output as text or JSON (using the -j flag) Extract the PDF text (using the --text flag) Use as command-line tool or Python package Compatible with Python 2 and 3 Works with local and online pdfs Getting Started Grab a copy of pdfx with easy_install or pip and run it:

## Mir/Wayland-Powered Miracle-WM 0.11 Released With New Overview Mode, Window Urgency

DevFeed: [Mir/Wayland-Powered Miracle-WM 0.11 Released With New Overview Mode, Window Urgency](<https://devfeed.tech/articles/mir-wayland-powered-miracle-wm-0-11-released-with-new-overview-mode-window-urgency-34947.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Miracle-WM-0.11>)

Author: Michael Larabel

Published: 2026-09-17T00:58:42Z

Content type: release

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [Wayland](<https://devfeed.tech/topics/wayland.md>), [Library](<https://devfeed.tech/topics/library.md>), [canonical](<https://devfeed.tech/topics/canonical.md>)

Tags: [commands](<https://devfeed.tech/tags/commands.md>), [data](<https://devfeed.tech/tags/data.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [events](<https://devfeed.tech/tags/events.md>), [github](<https://devfeed.tech/tags/github.md>), [image](<https://devfeed.tech/tags/image.md>), [input](<https://devfeed.tech/tags/input.md>), [ipc](<https://devfeed.tech/tags/ipc.md>), [library](<https://devfeed.tech/tags/library.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [overview](<https://devfeed.tech/tags/overview.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [release](<https://devfeed.tech/tags/release.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [update](<https://devfeed.tech/tags/update.md>), [wayland](<https://devfeed.tech/tags/wayland.md>), [window](<https://devfeed.tech/tags/window.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

Miracle-WM 0.11, a Wayland compositor built on the Mir library, adds an overview mode, window urgency support, plugin IPC events and commands, and support for newer Mir protocols. The release is built on Mir 2.29.

### Source excerpt

Canonical engineer Matthew Kosarek rolled out Miracle-WM 0.11 today as an end-of-summer update to this Wayland compositor built atop the Mir library...

## i18nize-templates: Internationalization After the Fact

DevFeed: [i18nize-templates: Internationalization After the Fact](<https://devfeed.tech/articles/i18nize-templates-internationalization-after-the-fact-27382.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/i18nize-templates.htm>)

Author: Khan Academy

Published: 2015-09-28T22:00:00Z

Content type: release

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Internationalization (i18n)](<https://devfeed.tech/topics/i18n.md>), [Localization (l10n)](<https://devfeed.tech/topics/localization.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Python](<https://devfeed.tech/topics/python.md>), [Handlebars](<https://devfeed.tech/topics/handlebars.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Babel](<https://devfeed.tech/topics/babel.md>)

Tags: [babel](<https://devfeed.tech/tags/babel.md>), [code](<https://devfeed.tech/tags/code.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [html](<https://devfeed.tech/tags/html.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [language](<https://devfeed.tech/tags/language.md>), [languages](<https://devfeed.tech/tags/languages.md>), [library](<https://devfeed.tech/tags/library.md>), [news](<https://devfeed.tech/tags/news.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

Khan Academy describes retrofitting its English-only codebase for internationalization and localization across several HTML-rendering technologies. It introduces i18nize-templates, an open-source Python module that finds natural-language text in HTML and templates and marks it as i18n-aware. The tool supports raw HTML, jinja2, and Handlebars templates and reportedly reduces template annotation time by over 90%.

### Source excerpt

By Craig Silverstein Khan Academy started as a collection of videos, but now has over 100,000 pieces of ... Read more

## Kermit 2.2.0 adds WasmWasi support and a new Coil3 extension - Kevin Schildhorn

DevFeed: [Kermit 2.2.0 adds WasmWasi support and a new Coil3 extension - Kevin Schildhorn](<https://devfeed.tech/articles/kermit-2-2-0-adds-wasmwasi-support-and-a-new-coil3-extension-kevin-schildhorn-38233.md>)

Original publisher: [Read original article](<https://touchlab.co/kermit-220>)

Published: 2026-09-16T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Library](<https://devfeed.tech/topics/library.md>), [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [Extension](<https://devfeed.tech/topics/extension.md>)

Tags: [2-2](<https://devfeed.tech/tags/2-2.md>), [coil](<https://devfeed.tech/tags/coil.md>), [extension](<https://devfeed.tech/tags/extension.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kermit](<https://devfeed.tech/tags/kermit.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [library](<https://devfeed.tech/tags/library.md>), [swift](<https://devfeed.tech/tags/swift.md>), [update](<https://devfeed.tech/tags/update.md>), [version](<https://devfeed.tech/tags/version.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>)

### AI overview

Kermit 2.2.0 adds WasmWasi support for selected targets, updates supported targets, and introduces a Kermit module for receiving logs from Coil 3 image loaders.

### Source excerpt

The 2.2.0 update for Kermit is out now featuring a new Coil3 extension, plus support for more targets including WasmWasi.

## SDL3 Ported To HarmonyOS / OpenHarmony

DevFeed: [SDL3 Ported To HarmonyOS / OpenHarmony](<https://devfeed.tech/articles/sdl3-ported-to-harmonyos-openharmony-26767.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/SDL3-Ported--To-HarmonyOS>)

Author: Michael Larabel

Published: 2026-09-15T16:54:08Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [Simple DirectMedia Layer](<https://devfeed.tech/topics/sdl.md>), [huawei](<https://devfeed.tech/topics/huawei.md>), [Library](<https://devfeed.tech/topics/library.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [applications](<https://devfeed.tech/tags/applications.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [games](<https://devfeed.tech/tags/games.md>), [huawei](<https://devfeed.tech/tags/huawei.md>), [library](<https://devfeed.tech/tags/library.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [platform](<https://devfeed.tech/tags/platform.md>), [software](<https://devfeed.tech/tags/software.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>)

### AI overview

SDL3 has gained upstream support for Huawei's HarmonyOS and OpenHarmony. The port was sponsored by Outfit7, tested on real hardware, and is already used by some commercial games, according to Icculus.

### Source excerpt

The SDL3 library commonly used for games and applications for cross-platform hardware and software abstractions now has upstream support for Huawei's HarmonyOS and OpenHarmony...

## Rustls 0.23.45 Released To Fix Two Year Old Security Issue

DevFeed: [Rustls 0.23.45 Released To Fix Two Year Old Security Issue](<https://devfeed.tech/articles/rustls-0-23-45-released-to-fix-two-year-old-security-issue-17446.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Rustls-0.23.45-Released>)

Author: Michael Larabel

Published: 2026-09-14T15:35:11Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [Security](<https://devfeed.tech/topics/security.md>), [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Memory Safety](<https://devfeed.tech/topics/memory-safety.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [go](<https://devfeed.tech/tags/go.md>), [library](<https://devfeed.tech/tags/library.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [rust](<https://devfeed.tech/tags/rust.md>), [rustls](<https://devfeed.tech/tags/rustls.md>), [security](<https://devfeed.tech/tags/security.md>), [tls](<https://devfeed.tech/tags/tls.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

Rustls 0.23.45 fixes a vulnerability in which TLS 1.3 handshake messages sent at the wrong encryption level could be accepted as plaintext after a key-changing message. The issue was present since Rustls 0.23.13 and could allow an on-path attacker to inject plaintext messages, although the authenticated handshake transcript prevented altering or completing the handshake.

### Source excerpt

While the Rustls modern TLS library is written in the Rust programming language with a focus on memory safety, as we've seen out of other Rust project re-implementations in the past, the new implementations can lead to other security bugs of their own. Out today is Rustls 0.23.45 to fix a security issue introduced back in 2024 with Rustls while the likes of OpenSSL, BoringSSL, and others are unaffected...

## Using modern-web-types to add newer web API types to TypeScript

DevFeed: [Using modern-web-types to add newer web API types to TypeScript](<https://devfeed.tech/articles/modern-web-types-29516.md>)

Original publisher: [Read original article](<https://philipwalton.com/articles/modern-web-types/>)

Published: 2026-09-14T07:22:45Z

Content type: tutorial

Language: en

Sources: [Philip Walton](<https://devfeed.tech/sources/philip-walton.md>)

Topics: [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Web](<https://devfeed.tech/topics/web.md>), [Code](<https://devfeed.tech/topics/code.md>), [Library](<https://devfeed.tech/topics/library.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [view transitions](<https://devfeed.tech/topics/view-transitions.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [library](<https://devfeed.tech/tags/library.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [view-transitions](<https://devfeed.tech/tags/view-transitions.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article explains why TypeScript reports errors for newer web APIs that are available in Chrome: its built-in web API libraries require support from at least two browser engines. It introduces modern-web-types, a drop-in replacement using a single-engine support threshold, and describes how to install it for web and worker projects.

### Source excerpt

If you've ever written code against a new web API in TypeScript, you've probably seen an error telling you the thing you're using doesn't exist. Turns out, TypeScript intentionally doesn't support all new APIs, but there's an easy fix.

## Resolving Exception: Cannot Deserialize From Object Value (No Delegate- Or Property-Based Creator)

DevFeed: [Resolving Exception: Cannot Deserialize From Object Value (No Delegate- Or Property-Based Creator)](<https://devfeed.tech/articles/resolving-exception-cannot-deserialize-from-object-value-no-delegate-or-property-based-creator-17378.md>)

Original publisher: [Read original article](<https://www.baeldung.com/java-jackson-fix-no-creator-exception>)

Author: Martin Blažević

Published: 2026-09-14T04:21:09Z

Content type: tutorial

Language: en

Sources: [Baeldung](<https://devfeed.tech/sources/baeldung.md>)

Topics: [Jackson, Java Dates, Exception, LocalDate](<https://devfeed.tech/topics/jackson-java-dates-exception-localdate.md>), [Jackson](<https://devfeed.tech/topics/jackson.md>), [Exception](<https://devfeed.tech/topics/exception.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [exception](<https://devfeed.tech/tags/exception.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jackson](<https://devfeed.tech/tags/jackson.md>), [jackson-exception](<https://devfeed.tech/tags/jackson-exception.md>), [java](<https://devfeed.tech/tags/java.md>), [json](<https://devfeed.tech/tags/json.md>), [library](<https://devfeed.tech/tags/library.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains why Jackson can throw InvalidDefinitionException when it cannot determine how to construct an object during JSON deserialization. It demonstrates the problem with an immutable class and presents solutions including a no-argument constructor, property-based creators using @JsonCreator and @JsonProperty, and annotated factory methods. It also notes the correct annotation package for Jackson 3.x.

### Source excerpt

During JSON deserialization, Jackson may throw an InvalidDefinitionException when it can't determine how to create an instance of the target class. In this article, you'll learn how to fix this in Jackson 2.x and 3.x. The post Resolving Exception: Cannot Deserialize From Object Value (No Delegate- Or Property-Based Creator) first appeared on Baeldung.

## Track LLM API Costs with genai-prices

DevFeed: [Track LLM API Costs with genai-prices](<https://devfeed.tech/articles/track-llm-api-costs-with-genai-prices-30863.md>)

Original publisher: [Read original article](<https://www.packetcoders.io/track-llm-api-costs-with-genai-prices/>)

Author: Rick Donato

Published: 2026-09-01T11:16:32Z

Content type: tutorial

Language: en

Sources: [Packet Coders - Learn Network Automation](<https://devfeed.tech/sources/packet-coders-learn-network-automation.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [API](<https://devfeed.tech/topics/api.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Library](<https://devfeed.tech/topics/library.md>), [Python](<https://devfeed.tech/topics/python.md>), [Binance](<https://devfeed.tech/topics/binance.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cost](<https://devfeed.tech/tags/cost.md>), [example](<https://devfeed.tech/tags/example.md>), [genai](<https://devfeed.tech/tags/genai.md>), [inference](<https://devfeed.tech/tags/inference.md>), [install](<https://devfeed.tech/tags/install.md>), [library](<https://devfeed.tech/tags/library.md>), [llm](<https://devfeed.tech/tags/llm.md>), [openai](<https://devfeed.tech/tags/openai.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [python](<https://devfeed.tech/tags/python.md>), [report](<https://devfeed.tech/tags/report.md>), [request](<https://devfeed.tech/tags/request.md>), [tips](<https://devfeed.tech/tags/tips.md>), [token](<https://devfeed.tech/tags/token.md>), [uv](<https://devfeed.tech/tags/uv.md>)

### AI overview

A tutorial introducing the genai-prices Python library for estimating the cost of calling LLM inference APIs. It explains that the library can avoid maintaining a custom pricing table and can report token counts and cost for each request, with an OpenAI installation and usage example.

### Source excerpt

Tip: Use the genai-prices Python library to calculate the estimated cost of calling LLM inference APIs. This avoids maintaining your own pricing table and lets you report token counts and cost for each request. Below is an example: # Install: uv add openai genai-prices from openai import OpenAI from

## Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out

DevFeed: [Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out](<https://devfeed.tech/articles/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1-is-out-18856.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/parquet-file-write-support-bloom-filters-improved-performance-hardwood-1-1-0-beta1/>)

Published: 2026-08-31T19:36:00Z

Content type: release

Language: en

Sources: [Gunnar Morling](<https://devfeed.tech/sources/gunnar-morling.md>)

Topics: [parquet](<https://devfeed.tech/topics/parquet.md>), [Library](<https://devfeed.tech/topics/library.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Compression](<https://devfeed.tech/topics/compression.md>)

Tags: [apache-parquet](<https://devfeed.tech/tags/apache-parquet.md>), [api](<https://devfeed.tech/tags/api.md>), [cli](<https://devfeed.tech/tags/cli.md>), [compression](<https://devfeed.tech/tags/compression.md>), [library](<https://devfeed.tech/tags/library.md>), [parquet](<https://devfeed.tech/tags/parquet.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The first beta of Hardwood 1.1 introduces initial Parquet file-writing support through record-based and batch-oriented APIs. The release also adds Bloom filters, dictionary-based row-group pruning, performance improvements, and CLI enhancements.

### Source excerpt

Table of Contents Write Support Query Evaluation: Bloom Filters and Dictionary-Based Row-Group Pruning Performance Improvements Hardwood CLI Closing Thoughts "When is write support gonna land in Hardwood?" That's probably the most common question I got over the last few months. As of today, I am very happy to share that the answer has changed from "It's coming soon" to "A first cut is there, give it a try" -- the first Beta of Hardwood 1.1 is out! This is a major milestone for the project, marking the first step in evolving Hardwood from being solely a Parquet parser to a complete library for this widely used columnar file format. But there's more. This release also comes with significant enhancements to the query layer (Bloom filters, dictionary-based row-group pruning), many performance improvements such as a fast path for effectively fixed-length list columns, an even snappier CLI, and much more. Let's dig into some of the new features and changes!

## Designing Android's missing WorkManager test rule

DevFeed: [Designing Android's missing WorkManager test rule](<https://devfeed.tech/articles/designing-android-s-missing-workmanager-test-rule-25830.md>)

Original publisher: [Read original article](<https://segunfamisa.com/posts/androids-missing-work-manager-test-rule>)

Author: Segun Famisa

Published: 2026-08-30T06:00:00Z

Content type: tutorial

Language: en

Sources: [Segun Famisa](<https://devfeed.tech/sources/segun-famisa.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Library](<https://devfeed.tech/topics/library.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [guide](<https://devfeed.tech/tags/guide.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [library](<https://devfeed.tech/tags/library.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article presents a WorkManager test rule intended to reduce repeated setup, cleanup, state retrieval, and API calls when testing Android work. It discusses the androidx.work:work-testing library, integration-style testing with TestDriver, and a proposed WorkManagerTestRule.

### Source excerpt

TL;DR - create a work manager rule to make your tests easier to write. It's not hard to do, and it pays off. I have been working quite a bit with WorkManager stuff these days, and while attempting to write tests for them, I realised there were things I was doing repeatedly. Work Manager provides a helpful testing library - androidx.work:work-testing and they have a very nice guide on how to write tests for work manager - both integration tests, and testing worker implementation details1, and despite this, I found myself writing a couple of things over and over again. This post is somewhere between bringing awareness to testing APIs available for WorkManager, and showcasing a test rule that I think can help lower the barrier to testing. Before Say I have a SyncDispatcher class that does sync, and sometimes, I want to keep existing work, and other times, I want to replace the existing work. class SyncDispatcher(val workManager: WorkManager) { fun sync(params: SyncParams) { val existingWorkPolicy = if (params.syncAll) { ExistingWorkPolicy.REPLACE } else { ExistingWorkPolicy.APPEND_OR_REPLACE } val workRequest = OneTimeWorkRequestBuilder<SyncWorker>() .setConstraints(Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()) .build() workManager.beginUniqueWork("sync-work", existingWorkPolicy, workRequest) .enqueue() } } If I wanted to test this behaviour in an "integration-testing" style, I could use the TestDriver API2 of work manager to instrument the constraints that my work depends on, be it initial delay, network condition, period delay (for perioidic work), stopping the work with a reason, and so on. // SyncDispatcherTest.kt @Before { val config = Configuration.Builder().setExecutor(SynchronousExecutor()).build() WorkManagerTestInitHelper.initializeTestWorkManager(testContext, config) } @Test fun `sync all drops all prior sync requests`() = runTest() { // given that we have previous sync work enqueued dispatch.sync(syncPartialParams) // when we

## Why regex isn't email validation

DevFeed: [Why regex isn't email validation](<https://devfeed.tech/articles/why-regex-isn-t-email-validation-16072.md>)

Original publisher: [Read original article](<https://workos.com/blog/why-regex-isnt-email-validation>)

Author: WorkOS

Published: 2026-08-24T00:00:00Z

Content type: article

Language: en

Sources: [WorkOS Blog](<https://devfeed.tech/sources/workos-blog.md>)

Topics: [Parsing](<https://devfeed.tech/topics/parsing.md>), [Forms](<https://devfeed.tech/topics/forms.md>), [HTML5 and CSS3 tricks](<https://devfeed.tech/topics/html5-and-css3-tricks.md>), [Library](<https://devfeed.tech/topics/library.md>), [Internet](<https://devfeed.tech/topics/internet.md>)

Tags: [advice](<https://devfeed.tech/tags/advice.md>), [deliverability](<https://devfeed.tech/tags/deliverability.md>), [domain](<https://devfeed.tech/tags/domain.md>), [email](<https://devfeed.tech/tags/email.md>), [forms](<https://devfeed.tech/tags/forms.md>), [framework](<https://devfeed.tech/tags/framework.md>), [html5](<https://devfeed.tech/tags/html5.md>), [internet](<https://devfeed.tech/tags/internet.md>), [library](<https://devfeed.tech/tags/library.md>), [regex](<https://devfeed.tech/tags/regex.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

The article explains that email syntax validation with regexes, HTML5 checks, or framework libraries does not establish deliverability or confirm that a mailbox exists. It recommends a loose syntax check and stopping there, while recognizing that stronger checks address separate, less reliable questions.

### Source excerpt

Checking that an address looks right and checking that it can receive mail are different problems. Most signup forms only solve the first one.

## Ruby Instance Variables Are Not Inherited (and Why That Breaks Your DSL)

DevFeed: [Ruby Instance Variables Are Not Inherited (and Why That Breaks Your DSL)](<https://devfeed.tech/articles/ruby-instance-variables-are-not-inherited-and-why-that-breaks-your-dsl-20532.md>)

Original publisher: [Read original article](<https://code.dblock.org/2026/08/14/instance-variables-are-not-inherited-and-why-that-breaks-your-dsl.html>)

Author: Daniel Doubrovkine (dblock@dblock.org)

Published: 2026-08-14T00:00:00Z

Content type: article

Language: en

Sources: [Daniel Doubrovkine](<https://devfeed.tech/sources/daniel-doubrovkine.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Library](<https://devfeed.tech/topics/library.md>), [Development](<https://devfeed.tech/topics/development.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [development](<https://devfeed.tech/tags/development.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This article explains how Ruby instance variables used by the ruby-enum gem are not inherited by subclasses, causing failures involving subclassing, class reloading, and redundant module inclusion. It describes fixes shipped in ruby-enum 1.2.0, including lazy defaults and explicit merging of inherited enums.

### Source excerpt

The ruby-enum gem is a small library I maintain that adds enum-like behavior to a class via include Ruby::Enum and define :KEY, value. Four pull requests landed against it recently, each fixing a different symptom, and all four turned out to be the same underlying bug: class-level instance variables set in a module's included hook are not inherited by subclasses the way you might expect. All of these fixes shipped in ruby-enum 1.2.0. Ruby::Enum stores its keys and values in instance variables on the class itself, set up when the module is included. def self.included(base) base.extend ClassMethods base.instance_variable_set(:@_enum_hash, {}) base.instance_variable_set(:@_enums_by_value, {}) end This works fine for a single class. It gets interesting the moment subclasses or class reloading show up. A user opened #56, reporting DuplicateKeyError from a Rails console after a class that had already defined its enums got reloaded. It reproduces without Rails. class_body = proc do include Ruby::Enum define :RED, 'red' end Colors = Class.new(&class_body) Colors.class_eval(&class_body) # raises DuplicateKeyError Rails' development-mode autoloader re-evaluates a class body, and the second define :RED sees @_enum_hash still holding RED from the first load, so the duplicate-key check fires. The fix clears the hash whenever Ruby::Enum is included, rather than assuming it's always a fresh class. The contributor that reported the problem and submitted the fix also caught a sneakier variant: a subclass that redundantly re-includes Ruby::Enum (include is supposed to be idempotent, right?) was wiping out enums inherited from its parent, because included unconditionally reset the instance variables: class OtherSecondSubclass < FirstSubclass include Ruby::Enum # redundant, but shouldn't lose FirstSubclass's enums define :MAGENTA, 'magenta' end Thanks, Nazar, for tracking both of these down with tests. Months later, #49 surfaced a related crash: a subclass that never calls define itsel

## Why We Wrote a New JWT Library for Kotlin Multiplatform

DevFeed: [Why We Wrote a New JWT Library for Kotlin Multiplatform](<https://devfeed.tech/articles/why-have-we-written-a-new-jwt-library-gustavo-fao-valvassori-38237.md>)

Original publisher: [Read original article](<https://touchlab.co/kjwt-intro>)

Published: 2026-08-07T00:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [community](<https://devfeed.tech/tags/community.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>)

### AI overview

The author explains how a security-focused Kotlin Multiplatform banking project led to research into cryptography and JWTs. After finding that JJWT was limited for cross-platform projects, they began developing a new JWT library as a personal open-source learning project.

### Source excerpt

Earlier this year, we silently started working on and published a new KMP library. The reason it exists serves as a good lesson on how to start contributing to the open-source community.

## Why "state management" is a misleading term in React

DevFeed: [Why "state management" is a misleading term in React](<https://devfeed.tech/articles/the-absolute-state-of-management-26566.md>)

Original publisher: [Read original article](<https://infrequently.org/2026/07/state-management/>)

Author: Alex Russell

Published: 2026-07-23T00:00:00Z

Content type: opinion

Language: en

Sources: [Alex Russell](<https://devfeed.tech/sources/alex-russell.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>)

Tags: [alternatives](<https://devfeed.tech/tags/alternatives.md>), [frameworkism](<https://devfeed.tech/tags/frameworkism.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [library](<https://devfeed.tech/tags/library.md>), [react](<https://devfeed.tech/tags/react.md>), [redux](<https://devfeed.tech/tags/redux.md>), [state-management](<https://devfeed.tech/tags/state-management.md>), [webdev](<https://devfeed.tech/tags/webdev.md>)

### AI overview

This opinion article argues that "state management" is an imprecise label for React and the surrounding ecosystem. It surveys libraries including Redux, Zustand, Apollo, and others, and contends that they primarily encapsulate state or propagate notifications about state changes rather than manage state themselves.

### Source excerpt

It is by no means the gravest linguistic crime of the React epoch,1 but "state management" grates like nails on chalkboard. A Socratic dialogue I keep having about it goes something like this: me: This UI is far too heavyweight for what it does, have you considered not using React? them: But how will we do state management without React? me: What do you mean? <alternatives> are reactive. them: React manages state in our app. me: It does? Then what are <various_libraries> for? them: Oh, those manage state. me: The libraries that trigger this "Who's on First?" routine include: MobX, which promises "simple, scalable state management." Satchel, apparently, "is characterized by exposing an observable state that makes view updates painless and efficient" Recoil, billed as "a state management library for React" Jotai, which pledges "primitive and flexible state management for React" XState, a "state management and orchestration solution for JavaScript and TypeScript apps" Apollo, promising "a comprehensive GraphQL state management library for JavaScript" Redux, tagline: "a predictable state container for JavaScript apps." TanStack Store, "a framework-agnostic state primitive for immutable updates" Zustand, described as the "🐻 bear necessities for state management in React" Contrasts sharp enough to cut softened butter.2 Suffice it to say, the ecosystem has not picked a winner. Indeed, I regularly see several of these libraries on a single page. But even one would seem too many, given that we're adding a second "state management" system to a framework that spills considerable documentation ink chest-beating about its state management facilities. One of the following must be true: React is a state management system and someone has smuggled in a duplicative dependency we can jettison. React is an inadequate state management system and we should stop trusting it with an ill-defined subset of the "state management" problem. React is not a state management system and we should s

## Useful Python Libraries Every Network Engineer Should Know

DevFeed: [Useful Python Libraries Every Network Engineer Should Know](<https://devfeed.tech/articles/useful-python-libraries-every-network-engineer-should-know-40168.md>)

Original publisher: [Read original article](<https://blog.j2sw.com/netops/useful-python-libraries-network-engineers/>)

Author: j2sw

Published: 2026-07-21T12:35:00Z

Content type: tutorial

Language: en

Sources: [Justin Wilson (j2sw)](<https://devfeed.tech/sources/justin-wilson-j2sw.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Library](<https://devfeed.tech/topics/library.md>), [networking](<https://devfeed.tech/topics/networking.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [automation](<https://devfeed.tech/tags/automation.md>), [bgp](<https://devfeed.tech/tags/bgp.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [code](<https://devfeed.tech/tags/code.md>), [devops](<https://devfeed.tech/tags/devops.md>), [firewalls](<https://devfeed.tech/tags/firewalls.md>), [library](<https://devfeed.tech/tags/library.md>), [netops](<https://devfeed.tech/tags/netops.md>), [network](<https://devfeed.tech/tags/network.md>), [network-engineering](<https://devfeed.tech/tags/network-engineering.md>), [network-operations](<https://devfeed.tech/tags/network-operations.md>), [python](<https://devfeed.tech/tags/python.md>), [python-libraries](<https://devfeed.tech/tags/python-libraries.md>)

### AI overview

This article introduces Python libraries for network engineering, explaining how they support device connections, API interactions, automation, configuration backups, audits, and reports. It discusses Netmiko, NAPALM, Nornir, Paramiko, and Requests.

### Source excerpt

A Python script usually spends very little time doing actual Python work. Most of the actual work comes from libraries that know how to connect to network devices and do the work. They interact with APIs. Once you understand what each library does, you can spend less time writing code and more time solving network ... Read more The post Useful Python Libraries Every Network Engineer Should Know appeared first on Justin Wilson (j2sw).

## Bring your KMP library to NuGet

DevFeed: [Bring your KMP library to NuGet](<https://devfeed.tech/articles/bring-your-kmp-library-to-nuget-25915.md>)

Original publisher: [Read original article](<https://proandroiddev.com/bring-your-kmp-library-to-nuget-02e1131a4707?source=rss-43bae76e8f81------2>)

Author: Isuru Rajapakse

Published: 2026-07-19T13:17:14Z

Content type: tutorial

Language: en

Sources: [Stories by Isuru Rajapakse on Medium](<https://devfeed.tech/sources/stories-by-isuru-rajapakse-on-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [NuGet](<https://devfeed.tech/topics/nuget.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [.NET](<https://devfeed.tech/topics/net.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Library](<https://devfeed.tech/topics/library.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [library](<https://devfeed.tech/tags/library.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [net](<https://devfeed.tech/tags/net.md>), [nuget](<https://devfeed.tech/tags/nuget.md>), [nuget-package](<https://devfeed.tech/tags/nuget-package.md>)

### AI overview

The article introduces kotlin-native-nuget, a Gradle plugin that packages Kotlin/Native libraries as NuGet packages with generated idiomatic C# bindings. It explains the motivation, configuration, publishing workflow, and supported mappings for Kotlin features such as classes, enums, data classes, coroutines, generics, interfaces, and exceptions.

### Source excerpt

with kotlin-native-nuget plugin, you can bring your Kotlin to C# idiomaticallyhttps://medium.com/media/0f185efc67390bbf440bfc33f5675f42/href A little while ago, I gave a talk where I tried to take a library written in Kotlin and hand it to a .NET developer as a NuGet package. By hand. It is 30 minutes of me walking into every brick wall you can imagine - the C ABI, marshalling strings, keeping objects alive across the boundary, making any of it look like C# a human would actually want to use. Introducing kotlin-native-nuget 🪟kotlin-native-nuget plugin auto-binds your kotlin api into C# I turned all of that into a plugin, so you don't have to hit a single one of those walls. You write Kotlin, and out the other side comes a NuGet package with a proper, idiomatic C# API: classes, enums, data classes, coroutines, Flow, generics, interfaces, the works. No FFI boilerplate, no hand-written [DllImport], no "here's a C header, good luck". Your friends over in .NET just `dotnet add package` it and use it like it was C# all along. It's called kotlin-native-nuget, and it's a Gradle plugin. Here's the pitch: GitHub - xxfast/kotlin-native-nuget: A plugin that packages a Kotlin/Native library as a NuGet package with generated C# bindings, and consumes C# NuGet packages from Kotlin The pitch 🛗plugins { kotlin("multiplatform") id("io.github.xxfast.kotlin.native.nuget") version "<version>" } kotlin { mingwX64 { binaries { sharedLib { baseName = "mycatlib" } } } macosArm64 { binaries { sharedLib { baseName = "mycatlib" } } } } nuget { publish { packageId = "MyCatLib" version = "1.0.0" authors = "yourname" description = "My Kotlin/Native library" rootPackage = "com.example.cats" } } That's it. Add the plugin, point it at your native targets, and run the publish task. Out pops a .nupkg. Why though? 🤔 It's a fair question. I got it a lot (even on that talk) Kotlin Multiplatform already reaches an absurd number of places: the JVM, Android, iOS, JS, Wasm, and native desktop. But there's th

## Practical Kotlin Multiplatform: Setting up the Kotlin Multiplatform Networking Module with Ktor

DevFeed: [Practical Kotlin Multiplatform: Setting up the Kotlin Multiplatform Networking Module with Ktor](<https://devfeed.tech/articles/practical-kotlin-multiplatform-setting-up-the-kotlin-multiplatform-networking-module-with-ktor-25190.md>)

Original publisher: [Read original article](<https://joebirch.co/android/practical-kotlin-multiplatform-setting-up-the-kotlin-multiplatform-networking-module-with-ktor/>)

Author: hitherejoe

Published: 2026-07-10T16:16:31Z

Content type: tutorial

Language: en

Sources: [Joe Birch](<https://devfeed.tech/sources/joe-birch.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [networking](<https://devfeed.tech/topics/networking.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [library](<https://devfeed.tech/tags/library.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [module](<https://devfeed.tech/tags/module.md>), [networking](<https://devfeed.tech/tags/networking.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>)

### AI overview

A tutorial series installment that sets up a Kotlin Multiplatform networking module with Ktor for shared Android and iOS code. It describes building a portable Firebase Authentication and Firestore REST API layer without relying on platform-specific SDKs.

### Source excerpt

This post is part one of a series adapted from Practical KMP, my book on building production Kotlin Multiplatform apps for Android and iOS. Part 1: Creating the Kotlin Multiplatform Module In this part of the book, we'll build the complete authentication remote store, defining a repository that handles every operation our app needs for... Continue reading ->

## Expanding Athena

DevFeed: [Expanding Athena](<https://devfeed.tech/articles/expanding-athena-13034.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/expanding-athena>)

Published: 2026-07-07T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [open-source-security](<https://devfeed.tech/topics/open-source-security.md>), [Frontier AI](<https://devfeed.tech/topics/frontier-ai.md>), [AI Models](<https://devfeed.tech/topics/ai-models.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Security](<https://devfeed.tech/topics/security.md>), [Maintainers](<https://devfeed.tech/topics/maintainers.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [akrites](<https://devfeed.tech/tags/akrites.md>), [athena](<https://devfeed.tech/tags/athena.md>), [chainguard-clearinghouse](<https://devfeed.tech/tags/chainguard-clearinghouse.md>), [chainguard-libraries](<https://devfeed.tech/tags/chainguard-libraries.md>), [frontier-ai](<https://devfeed.tech/tags/frontier-ai.md>), [library](<https://devfeed.tech/tags/library.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [secure-open-source](<https://devfeed.tech/tags/secure-open-source.md>), [secure-oss](<https://devfeed.tech/tags/secure-oss.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Chainguard describes Athena, an industry coalition coordinating the discovery, remediation, protection, disclosure, and upstream fixing of vulnerabilities in open source software. The article reports that Athena has processed more than 40,000 vulnerabilities and emphasizes that frontier AI models can identify latent flaws and chain lower-severity bugs into serious attacks.

### Source excerpt

See how Athena is helping secure open source by coordinating AI-discovered vulnerabilities, partner protections, and upstream fixes at scale.

## Hardwood 1.0: A Fast, Lightweight Apache Parquet Reader for the JVM

DevFeed: [Hardwood 1.0: A Fast, Lightweight Apache Parquet Reader for the JVM](<https://devfeed.tech/articles/hardwood-1-0-a-fast-lightweight-apache-parquet-reader-for-the-jvm-18826.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/hardwood-1-0-fast-lightweight-apache-parquet-reader-for-the-jvm/>)

Published: 2026-06-25T05:30:00Z

Content type: release

Language: en

Sources: [Gunnar Morling](<https://devfeed.tech/sources/gunnar-morling.md>)

Topics: [parquet](<https://devfeed.tech/topics/parquet.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Java](<https://devfeed.tech/topics/java.md>), [Library](<https://devfeed.tech/topics/library.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>)

Tags: [apache-parquet](<https://devfeed.tech/tags/apache-parquet.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [compression](<https://devfeed.tech/tags/compression.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [library](<https://devfeed.tech/tags/library.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parquet](<https://devfeed.tech/tags/parquet.md>), [performance](<https://devfeed.tech/tags/performance.md>), [releases](<https://devfeed.tech/tags/releases.md>)

### AI overview

The article announces Hardwood 1.0, an open-source Apache Parquet library for Java 21 or newer and the JVM. It focuses on fast, multi-threaded reading with no mandatory dependencies, supports local and remote files, and is available from Maven Central.

### Source excerpt

Table of Contents Why Hardwood What's in Hardwood 1.0 Performance The Hardwood CLI Building Open-Source With AI A Big Thank You What's Ahead Hardwood is a new Parquet library for the JVM, written from scratch to do one thing well: read (and soon, write) Apache Parquet files fast, with no mandatory dependencies. It is performance-focused and multi-threaded at its core, fanning page decoding out across all your CPU cores by default. Today, Hardwood reaches 1.0. After five preview releases since the start of the year (Alpha1, Beta1, Beta2, CR1, CR2), we now consider Hardwood ready for production, and its public API will evolve with a strong focus on backwards compatibility going forward. Hardwood targets Java 21 or newer, is open-source (Apache License 2.0), and is available from Maven Central.

## Introducing Composables UI

DevFeed: [Introducing Composables UI](<https://devfeed.tech/articles/introducing-composables-ui-28456.md>)

Original publisher: [Read original article](<https://composables.com/blog/introducing-composables-ui>)

Author: Alex Styl

Published: 2026-06-22T00:00:00Z

Content type: release

Language: en

Sources: [Composables - Concise, no-fluff video tutorials for Android developers](<https://devfeed.tech/sources/composables-concise-no-fluff-video-tutorials-for-android-developers.md>)

Topics: [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [Library](<https://devfeed.tech/topics/library.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [library](<https://devfeed.tech/tags/library.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

Composables UI is a fully accessible component library for Compose Multiplatform. It provides adaptive components for different device capabilities, consistent states and theming with dark mode, and options to use it as a Gradle dependency or copy individual component source. The article also describes upgrades to Compose Unstyled developed through testing Composables UI.

### Source excerpt

A modern, fully-accessible component library for Compose Multiplatform.

## Parsing JSON at compile time with C++26 static reflection

DevFeed: [Parsing JSON at compile time with C++26 static reflection](<https://devfeed.tech/articles/parsing-json-at-compile-time-with-c-26-static-reflection-29412.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/06/14/parsing-json-at-compile-time-with-c26-static-reflection/>)

Author: Daniel Lemire

Published: 2026-06-14T14:59:44Z

Content type: tutorial

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [JSON](<https://devfeed.tech/topics/json.md>), [C](<https://devfeed.tech/topics/c.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [json](<https://devfeed.tech/tags/json.md>), [library](<https://devfeed.tech/tags/library.md>), [parsing](<https://devfeed.tech/tags/parsing.md>)

### AI overview

This tutorial demonstrates parsing a fixed JSON configuration file at compile time with C++26 static reflection and GCC 16. It explains embedding the file's bytes in the executable, using simdjson to synthesize a typed C++ object, and detecting malformed JSON during compilation instead of at startup.

### Source excerpt

Suppose that you have a configuration file in JSON. Something like this: { "width": 1920, "height": 1080, "fullscreen": true, "title": "My Game", "volume": 0.8 } Normally you ship this file alongside your program, open it at startup, read it, and parse it. That is a lot of work for data that never changes. What if ... Continue reading Parsing JSON at compile time with C++26 static reflection

## How We Cut Kafka Consumer Deployment Costs by 83%

DevFeed: [How We Cut Kafka Consumer Deployment Costs by 83%](<https://devfeed.tech/articles/how-we-cut-kafka-consumer-deployment-costs-by-83-28062.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2026-06-12-how-we-cut-kafka-consumer-deployment-costs-by-83/>)

Author: ZhongLi Shen He creates fantastic software as a backend engineer GitHub profile Linkedin profile

Published: 2026-06-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Kafka](<https://devfeed.tech/topics/kafka.md>), [Deployer](<https://devfeed.tech/topics/deployer.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [backpressure](<https://devfeed.tech/tags/backpressure.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [java](<https://devfeed.tech/tags/java.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [library](<https://devfeed.tech/tags/library.md>), [performance](<https://devfeed.tech/tags/performance.md>), [reactive](<https://devfeed.tech/tags/reactive.md>)

### AI overview

This post explains how trivago investigated PSE-kafka's low CPU usage, slow Kafka polling, and consumer lag. The investigation found that replacing the in-house KafkaReceiverFlux with spring-kafka removed the lag, while the team continued looking for a suitable fix that preserved pull-based consumption and backpressure. The changes ultimately cut infrastructure costs by 83% and ended a run of 19 P1 incidents.

### Source excerpt

This post walks through a layered performance investigation that cut PSE-kafka's infrastructure costs by 83% and ended a run of 19 P1 incidents.PSE-kafka (price-search-engine-kafka) i...

[Next page](<https://devfeed.tech/tags/library.md?cursor=WyIyMDI2LTA2LTEyVDAwOjAwOjAwKzAwOjAwIiwgImEzZTQ0NmM1LTJkODgtNGFmYy04MTlhLTA4ZTYxY2Y1YjNhYSJd>)