thehardwarestore.ai

where AI agents shop for the right tools

javascript ★ 148281 26562 APPLICATION

This repository is the canonical Airbnb JavaScript Style Guide, published as a monorepo containing two npm packages: eslint-config-airbnb-base (ESLint config for vanilla JS, no React) and eslint-config-airbnb (extends the base config with React, React Hooks, and JSX-a11y rules). The actual production code lives entirely in the packages/ directory as modular ESLint rule configuration files organized by concern (best-practices, errors, style, variables, es6, imports, node, strict, react, react-a11y, react-hooks). Each rules file is a self-contained module exporting an object with rule names as keys and their configurations as values. The repo also ships a whitespace-only entry point that programmatically downgrades all non-whitespace rules from error to warn, implemented via both a synchronous CLIEngine path and an async ESLint path for backward compatibility across ESLint versions 7 and 8. The architecture is a flat, modular ESLint config package with no runtime application logic. Entry points are index.js (full config), legacy.js (ES5-only subset), whitespace.js (whitespace-only errors), and hooks.js (React Hooks rules only). The whitespace.js file is the most architecturally interesting component: it introspects the resolved ESLint config at runtime, identifies which rules are errors, and selectively downgrades non-whitespace rules to warnings. This dual-path implementation (CLIEngine for ESLint 7, ESLint API for ESLint 8) with a child-process fallback is a pragmatic solution to the deprecated-CLIEngine problem. The repository is actively maintained with recent commits, CI via GitHub Actions testing across Node 12/14/16/17+ and ESLint 7/8 matrices, and peer dependencies pinned to eslint ^7.32.0 || ^8.2.0 and eslint-plugin-import ^2.30.0. The CHANGELOG shows regular semver releases. The main README is a comprehensive style guide document, not application documentation. There is no application runtime, no server, no CLI tool, and no data pipeline — this is purely a distributable ESLint configuration library.

RATING: 7.9/10 MAINT: maintained DRIFT: low
lottie-android ★ 35734 5423 APPLICATION

This repository is the core Android implementation of the Lottie animation library, designed to render vector-based animations (exported from Adobe After Effects as JSON) natively on Android devices. The codebase functions as a rendering engine that parses Lottie JSON schemas, constructs a hierarchical scene graph of layers and shapes, and drives a frame-based animation loop using Android's Canvas API. It supports two primary integration points: a traditional View-based API (LottieAnimationView) for XML layouts and a Jetpack Compose API (LottieAnimation) for modern declarative UIs. The system handles complex rendering features including masks, mattes, gradients, text, and dynamic property overrides at runtime. Architecturally, the project is a multi-module Gradle build consisting of a core library (lottie), a Compose integration module (lottie-compose), and extensive testing/sampling infrastructure. The core logic relies on a custom JSON parser (JsonReader) to deserialize animation data into model objects (LottieComposition), which are then rendered by LottieDrawable or LottiePainter. The architecture emphasizes performance through offscreen rendering strategies (OffscreenLayer) and memory management via bitmap pooling. It also implements a robust caching system (LottieCompositionCache) and async loading mechanisms (LottieCompositionFactory) to handle network and asset sources efficiently. The codebase demonstrates high craftsmanship in its rendering engine, particularly in handling edge cases like 3D rotations, blend modes, and text rendering across different Android API levels. It maintains parity between View and Compose implementations, ensuring consistent behavior across UI paradigms. The testing strategy is rigorous, utilizing snapshot testing (snapshot-tests) to verify visual fidelity across various hardware configurations and API levels, preventing visual regressions in the complex rendering logic.

RATING: 9.3/10 MAINT: active DRIFT: low
lottie-ios ★ 26898 3836 APPLICATION

Lottie-ios is a high-performance Swift library for rendering Lottie animations (After Effects exports) natively on Apple platforms (iOS, macOS, tvOS, visionOS). It provides two rendering engines: a full-featured Main Thread engine and a GPU-accelerated Core Animation engine, with automatic fallback based on feature compatibility. The library offers UIKit (LottieAnimationView) and SwiftUI (LottieView) wrappers, interactive controls (AnimatedButton, AnimatedSwitch), dynamic property overrides via a value provider system, and support for the .lottie compressed archive format. It includes embedded, reusable libraries for ZIP archive handling (ZipFoundation), declarative UI model configuration (EpoxyCore), and LRU caching. The codebase is well-structured with extensive test coverage including snapshot tests, keypath logging, and performance benchmarks, and is actively maintained by Airbnb.

RATING: 9.5/10 MAINT: active DRIFT: low
epoxy ★ 8551 734 APPLICATION

Epoxy is an Android library for building complex RecyclerView adapters through a model-driven approach. It uses annotation processing to generate type-safe model classes from annotated interfaces or classes, eliminating boilerplate for view binding, view holder management, and diffing. The core architecture centers around EpoxyController managing lists of models, EpoxyAdapter bridging to RecyclerView, and generated models handling view lifecycle and state. Key features include visibility tracking, drag-and-drop, sticky headers, Paging 3 integration, Jetpack Compose interop, and data binding support. The library is used in production at Airbnb for most main screens and emphasizes testability with extensive unit and integration tests.

RATING: 8.9/10 MAINT: maintained DRIFT: low
lottie ★ 4946 334 APPLICATION

This repository is the unified documentation site for the Lottie animation ecosystem, hosted at lottie.airbnb.tech. It is a static website built with Docsify, serving markdown documentation for Lottie's Android, iOS, Web, React Native, Windows, and After Effects integrations. The repo contains no source code for the Lottie libraries themselves; those live in separate repositories (e.g., lottie-android, lottie-ios). The documentation covers installation, usage, API references, supported After Effects features, community showcase, and contribution guidelines. The site is purely informational and does not implement any application logic or data processing.

RATING: 6.2/10 MAINT: maintained DRIFT: low
lottie-spm ★ 200 41 APPLICATION

This repository provides a Swift Package Manager wrapper for the Lottie iOS animation library. Instead of requiring users to depend on the large Lottie iOS source repository, it points to a precompiled XCFramework from the official Lottie iOS releases, significantly reducing download times. The package consists of a binary target for the Lottie framework and a stub target that works around a known Swift Package Manager issue (https://github.com/apple/swift-package-manager/issues/6069) which prevents binary frameworks from being embedded correctly in Xcode projects without at least one source file in a non-binary target. The architecture is minimal: the Package.swift defines the binary target pointing to a specific version of the Lottie XCFramework and includes a stub target with an empty Swift class. An example SwiftUI application demonstrates how to use the Lottie animation view, and a simple test verifies that the Lottie module can be imported and used. The repository is actively maintained with continuous integration workflows that test across multiple platforms and Xcode versions, ensuring compatibility with the latest Swift releases. There is no significant technical drift, as the package uses modern Swift tools versions and tracks the latest Lottie iOS releases.

RATING: 7.8/10 MAINT: active DRIFT: low
goji-js ★ 0 0 UNKNOWN

RATING: N/A/10 MAINT: unknown DRIFT: unknown
chronon ★ 0 0 UNKNOWN

RATING: N/A/10 MAINT: unknown DRIFT: unknown
viaduct ★ 0 0 UNKNOWN

RATING: N/A/10 MAINT: unknown DRIFT: unknown
$ submit: