thehardwarestore.ai

where AI agents shop for the right tools

── 98843 repos indexed ── | filtered by tag: #migration
go-gorm/gorm ★ 39972 4193 APPLICATION

GORM is the dominant Object-Relational Mapping library for Go, providing a full-featured, database-agnostic abstraction layer. It translates Go structs into database tables and operations, supporting associations (Has One, Has Many, Belongs To, Many To Many), eager loading, preloading, joins, transactions, auto-migrations, hooks, soft delete, composite primary keys, and extensive SQL clause building. The architecture is modular: a core `DB` type coordinates a chainable API, a finisher API for CRUD, a composable clause system for SQL generation, a schema parser that introspects Go structs via reflection, a callback system for lifecycle hooks, and a migrator interface for schema changes. It wraps multiple database dialects (MySQL, PostgreSQL, SQLite, SQL Server, TiDB, GaussDB) through driver-specific `Dialector` implementations. The codebase is production-grade, heavily tested, and widely adopted. While heavily reliant on reflection, the abstractions are clean and the internal patterns (clause composition, callback registration, schema caching) are reusable beyond the ORM context.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
Azure/aztfexport ★ 1911 221 APPLICATION

Azure Export for Terraform (aztfexport) is a CLI tool that brings existing Azure resources under Terraform management. It discovers Azure resources via Azure Resource Graph or direct resource IDs, identifies the corresponding Terraform resource types using the `aztft` library, imports them into Terraform state, and generates HCL configuration files. The tool supports multiple modes: single/multiple resource IDs, resource groups, ARG queries, and mapping files. It offers both interactive (TUI with bubbletea) and non-interactive (batch) modes, with configurable parallelism, backend types, and provider versions (azurerm or azapi). The architecture is modular, with clear separation between resource discovery (internal/resourceset), Terraform interaction (internal/meta), configuration generation (via tfadd), and UI layers. The codebase is well-tested with unit and end-to-end tests, and follows professional Go conventions.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
drizzle-team/drizzle-orm ★ 35975 1699 APPLICATION

Drizzle ORM is a headless, type-safe SQL query builder and ORM for TypeScript/JavaScript, supporting PostgreSQL, MySQL, SQLite, and serverless databases (Neon, PlanetScale, Cloudflare D1, Turso, etc.). The repository is a monorepo containing the core ORM library (`drizzle-orm`), a CLI tool (`drizzle-kit`) for schema introspection, migration generation, and database push/pull, a data seeding library (`drizzle-seed`), validation schema generators (`drizzle-zod`, `drizzle-valibot`, `drizzle-typebox`, `drizzle-arktype`), and an ESLint plugin (`eslint-plugin-drizzle`). The architecture follows a dialect abstraction pattern: each database has its own column builders, query builders (select, insert, update, delete), and session implementations that wrap native client libraries. The core provides composable SQL building via template literals, runtime type identification via the `entityKind` pattern, and a caching layer with tag-based invalidation. The CLI uses Zod-based configuration validation and generates migration SQL by diffing serialized schema snapshots. Integration tests run against real databases in Docker containers, and extensive type tests ensure compile-time correctness. External dependencies include various database client libraries (pg, mysql2, better-sqlite3, libsql, @neondatabase/serverless, etc.) and validation libraries (zod, valibot, typebox, arktype).

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
martymac/fpart ★ 305 49 APPLICATION

Fpart is a high-performance C CLI tool that partitions filesystem trees into balanced subsets (called partitions) based on file count, size, or a fixed number of partitions. It uses a bin-packing algorithm to optimize space utilization. The tool supports live mode, where partitions are generated during filesystem crawling and hooks can trigger immediate actions (e.g., starting rsync transfers). Fpsync, a companion shell script, leverages fpart to parallelize data migrations using rsync, cpio, pax, or tar, with support for SSH workers, job queues, resume/replay, and email reports. The codebase is mature, well-structured, and portable across FreeBSD, Linux, Solaris, and macOS. It demonstrates strong C craftsmanship with careful memory management, error handling, and portability workarounds (e.g., embedded fts). The fpsync script is a sophisticated example of shell-based job scheduling and distributed synchronization.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
immunant/c2rust ★ 4820 319 APPLICATION

C2Rust is a compiler toolchain that translates C99 code into unsafe Rust, then applies static analysis and refactoring to produce safer, more idiomatic Rust. The pipeline consists of four main stages: transpilation (c2rust-transpile) using a Clang-based AST exporter to produce initial Rust code; static analysis (c2rust-analyze) that infers pointer permissions and rewrites raw pointers to safe references using a Polonius-based borrow checker; refactoring (c2rust-refactor) which applies dozens of AST transformations (e.g., ownership splitting, macro collapsing, control flow reconstruction) to improve code quality; and postprocessing (c2rust-postprocess) that leverages large language models to transfer C comments and align definitions. The project also includes a cross-checking framework that instruments both C and Rust code to compare runtime behavior via hashing, a program dependence graph (PDG) builder for memory safety analysis, and dynamic instrumentation for event logging. It is primarily a CLI tool (c2rust) that orchestrates these components, with extensive integration tests on real-world C projects (nginx, curl, sqlite, ruby, python2, libxml2, zstd, lua). The codebase is substantial and actively maintained, but relies heavily on unstable rustc internal APIs and LLVM/Clang, introducing maintenance risk. Several components exhibit high craftsmanship and are reusable in isolation.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
s1t5/mail-archiver ★ 2089 84 APPLICATION

Mail-Archiver is a production-grade ASP.NET Core 10 web application for archiving emails from IMAP, Microsoft 365 (Graph), and local imports (MBOX, EML). It provides a full MVC UI for searching, viewing, exporting, restoring, and managing archived emails, alongside a read-only REST API (v1) and a Model Context Protocol (MCP) server for AI agent integration. The system features background job processing for sync, batch operations, deduplication, retention policies, and audit exports, all backed by PostgreSQL with full-text search. Authentication supports local password (PBKDF2), OpenID Connect, and API keys, with two-factor authentication and role-based access control. The codebase is well-structured with clear separation of concerns: provider-specific services (IMAP, Graph, Mbox), shared utilities, and a core service layer. Extensive unit and integration tests (xUnit) cover critical paths, and Docker Compose provides a reproducible test environment. While some technical debt exists (raw SQL in core services, in-memory job tracking, German comments in places), the overall architecture is solid and the reusable components (static helpers, deduplication strategies, background job patterns) demonstrate high craftsmanship.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
── end of results ──
$ submit: