import {
  ProjectCategory,
  ProjectContent,
  ProjectInterface,
  ProjectStatus,
} from "@/lib/types"

const content: ProjectContent = {
  en: {
    tldr: "A set of reusable libraries for zero-knowledge technologies.",
    description: `### Overview

ZK-Kit is an innovative toolkit that provides reference implementations of cryptographic primitives across multiple
programming languages. It is designed to streamline the development of production-level projects involving zero-knowledge
proofs (ZKPs), offering developers a robust foundation for building secure and efficient applications.

### Motivations

One of the primary motivations behind ZK-Kit is to address a common challenge in the cryptographic development space:
the tendency to reinvent the wheel with each new project. Cryptographic primitives, especially those related to zero-knowledge
proofs, are complex and require deep expertise to implement correctly. By providing ready-to-use, well-tested implementations,
ZK-Kit allows developers to focus on their specific application logic rather than spending valuable time and resources on
recreating fundamental building blocks.

It also aims to foster a collaborative community where developers can engage in open discussions, share insights,
and tackle complex challenges in cryptography. By creating an environment that encourages knowledge exchange and
innovation, ZK-Kit aspires to become a hub for cryptographic advancement, empowering developers to experiment,
contribute, and drive progress in privacy-focused technologies.

### Key aspects

One of ZK-Kit's standout features is its commitment to providing a consistent developer experience
across various programming languages. By maintaining a common API structure, ZK-Kit enables developers to switch
languages effortlessly.
Additionally, ZK-Kit emphasizes code quality and reliability through rigorous code checks, integrating linters,
formatters, comprehensive testing, and regular audits, ensuring robust and maintainable code throughout development.`,
  },
}

export const ZKKit: ProjectInterface = {
  id: "zk-kit",
  category: ProjectCategory.DEVTOOLS,
  image: "zk-kit.svg",
  name: "ZK-Kit",
  projectStatus: ProjectStatus.ACTIVE,
  section: "pse",
  content,
  links: {
    website: "https://zkkit.pse.dev",
    github: "https://github.com/privacy-scaling-explorations/zk-kit",
  },
  tags: {
    keywords: ["Education", "Toolkits", "Anonymity/Privacy", "Algorithms"],
    themes: ["build"],
    types: ["Legos/dev tools"],
    builtWith: ["Circom", "JavaScript", "Solidity", "Noir", "Rust"],
  },
  extraLinks: {
    buildWith: [
      {
        label: "ZK-Kit JavaScript",
        url: "https://github.com/privacy-scaling-explorations/zk-kit",
      },
      {
        label: "ZK-Kit Solidity",
        url: "https://github.com/privacy-scaling-explorations/zk-kit.solidity",
      },
      {
        label: "ZK-Kit Circom",
        url: "https://github.com/privacy-scaling-explorations/zk-kit.circom",
      },
      {
        label: "ZK-Kit Rust",
        url: "https://github.com/privacy-scaling-explorations/zk-kit.rust",
      },
      {
        label: "ZK-Kit Noir",
        url: "https://github.com/privacy-scaling-explorations/zk-kit.noir",
      },
    ],
  },
}
