SPB Git

spb/metrika Public

Stata-class statistics, GPU-accelerated by Apple Silicon. Native Swift — no Electron, no Python runtime, no compromises.

Swift 92.4% HTML 3.3% R 3% Shell 1.3%
3.1 KB · 102 lines swift
Raw Blame History
1// swift-tools-version: 6.02//3//  Package.swift4//  Metrika5//6//  Author:  Simon-Pierre Boucher7//  Contact: contact@spboucher.ai8//  Copyright © 2026 Simon-Pierre Boucher. All rights reserved.9//1011import PackageDescription1213let strictConcurrency: [SwiftSetting] = [14    .swiftLanguageMode(.v6)15]1617let package = Package(18    name: "MetrikaKit",19    platforms: [.macOS(.v14)],20    products: [21        .library(22            name: "MetrikaKit",23            targets: [24                "ZQParser", "ZQPlanner", "ZQEngine", "ZQData",25                "ZQStats", "ZQGPU", "ZQGraphics", "ZQPlugins",26            ]27        ),28        .executable(name: "metrika-cli", targets: ["MetrikaCLI"]),29    ],30    dependencies: [31        .package(url: "https://github.com/duckdb/duckdb-swift", from: "1.0.0"),32        .package(url: "https://github.com/apple/swift-collections", from: "1.1.0"),33        .package(url: "https://github.com/apple/swift-argument-parser", from: "1.3.0"),34        .package(url: "https://github.com/ml-explore/mlx-swift", from: "0.18.0"),35    ],36    targets: [37        .target(38            name: "ZQParser",39            swiftSettings: strictConcurrency40        ),41        .target(42            name: "ZQData",43            dependencies: [44                .product(name: "DuckDB", package: "duckdb-swift"),45                .product(name: "Collections", package: "swift-collections"),46            ],47            swiftSettings: strictConcurrency48        ),49        .target(50            name: "ZQStats",51            dependencies: ["ZQData", "ZQGPU"],52            swiftSettings: strictConcurrency53        ),54        .target(55            name: "ZQGPU",56            dependencies: [57                "ZQData",58                .product(name: "MLX", package: "mlx-swift"),59            ],60            swiftSettings: strictConcurrency61        ),62        .target(63            name: "ZQPlanner",64            dependencies: ["ZQParser", "ZQData"],65            swiftSettings: strictConcurrency66        ),67        .target(68            name: "ZQGraphics",69            dependencies: ["ZQData"],70            swiftSettings: strictConcurrency71        ),72        .target(73            name: "ZQPlugins",74            dependencies: ["ZQParser", "ZQData"],75            swiftSettings: strictConcurrency76        ),77        .target(78            name: "ZQEngine",79            dependencies: [80                "ZQParser", "ZQPlanner", "ZQData", "ZQStats",81                "ZQGPU", "ZQGraphics", "ZQPlugins",82            ],83            resources: [.copy("Resources/Samples")],84            swiftSettings: strictConcurrency85        ),86        .executableTarget(87            name: "MetrikaCLI",88            dependencies: [89                "ZQEngine",90                .product(name: "ArgumentParser", package: "swift-argument-parser"),91            ],92            swiftSettings: strictConcurrency93        ),94        .testTarget(95            name: "MetrikaKitTests",96            dependencies: ["ZQParser", "ZQPlanner", "ZQEngine", "ZQData", "ZQStats", "ZQGPU"],97            resources: [.copy("Fixtures")],98            swiftSettings: strictConcurrency99        ),100    ]101)102