sql-forge 0.2.1

Proc-macro combining compile-time SQL validation with a runtime QueryBuilder for dynamic queries using named parameters.
Documentation
services:
  mysql:
    image: mysql:8.0.45
    container_name: sql-forge-mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_ROOT_HOST: "%"
      MYSQL_DATABASE: sql_forge_test
    ports:
      - "3306:3306"
    volumes:
      - ./tests/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
      - mysql-data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 5s
      timeout: 3s
      retries: 15

  pg:
    image: postgres:18.4
    container_name: sql-forge-pg
    environment:
      POSTGRES_PASSWORD: root
      POSTGRES_DB: sql_forge_test
    ports:
      - "5432:5432"
    volumes:
      - ./tests/init-pg.sql:/docker-entrypoint-initdb.d/init.sql:ro
      - pg-data:/var/lib/postgresql
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
      interval: 5s
      timeout: 3s
      retries: 15

  rust:
    build:
      context: .
      dockerfile: tests/Dockerfile
    container_name: sql-forge-rust
    environment:
      SQLX_OFFLINE: "false"
      CARGO_NET_GIT_FETCH_WITH_CLI: "true"
    volumes:
      - .:/app:rw
      - cargo-registry:/usr/local/cargo/registry
      - cargo-git:/usr/local/cargo/git
    depends_on:
      mysql:
        condition: service_healthy
      pg:
        condition: service_healthy
    command: >
      sh -c "
        rm -f /app/sql_forge_test.db &&
        sqlite3 /app/sql_forge_test.db < /app/tests/init-sqlite.sql &&
        tail -f /dev/null
      "

volumes:
  mysql-data:
  pg-data:
  cargo-registry:
  cargo-git: