• Stars
    star
    11,614
  • Rank 2,845 (Top 0.06 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 2 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open source payments switch written in Rust to make payments fast, reliable and affordable

Hyperswitch-Logo Hyperswitch-Logo

The open-source payments switch

The single API to access payment ecosystems across 130+ countries

Quick Start GuideLocal Setup GuideFast Integration for Stripe Users API Docs Supported Features
What's IncludedJoin us in building HyperSwitchCommunityBugs and feature requestsFAQsVersioningCopyright and License


Hyperswitch is a community-led, open payments switch to enable access to the best payments infrastructure for every digital business.

Using Hyperswitch, you can:

  • ⬇️ Reduce dependency on a single processor like Stripe or Braintree
  • 🧑‍💻 Reduce Dev effort by 90% to add & maintain integrations
  • 🚀 Improve success rates with seamless failover and auto-retries
  • 💸 Reduce processing fees with smart routing
  • 🎨 Customize payment flows with full visibility and control
  • 🌐 Increase business reach with local/alternate payment methods

Hyperswitch-Product

One-click deployment on AWS cloud

The fastest and easiest way to try Hyperswitch is via our CDK scripts

  1. Click on the following button for a quick standalone deployment on AWS, suitable for prototyping. No code or setup is required in your system and the deployment is covered within the AWS free-tier setup.

  2. Sign-in to your AWS console.

  3. Follow the instructions provided on the console to successfully deploy Hyperswitch

Run it on your system

You can run Hyperswitch on your system using Docker Compose after cloning this repository:

docker compose up -d

This will start the payments router, the primary component within Hyperswitch.

Check out the local setup guide for a more comprehensive setup, which includes the scheduler and monitoring services.

If you are already using Stripe, integrating with Hyperswitch is fun, fast & easy. Try the steps below to get a feel for how quick the setup is:

  1. Get API keys from our dashboard.
  2. Follow the instructions detailed on our documentation page.

🌟 Supported Payment Processors and Methods

As of Sept 2023, we support 50+ payment processors and multiple global payment methods. In addition, we are continuously integrating new processors based on their reach and community requests. Our target is to support 100+ processors by H2 2023. You can find the latest list of payment processors, supported methods, and features here.

🌟 Hosted Version

In addition to all the features of the open-source product, our hosted version provides features and support to manage your payment infrastructure, compliance, analytics, and operations end-to-end:

  • System Performance & Reliability

    • Scalable to support 50000 tps
    • System uptime of up to 99.99%
    • Deployment with very low latency
    • Hosting option with AWS or GCP
  • Value Added Services

    • Compliance Support, incl. PCI, GDPR, Card Vault etc
    • Customise the integration or payment experience
    • Control Center with elaborate analytics and reporting
    • Integration with Risk Management Solutions
    • Integration with other platforms like Subscription, E-commerce, Accounting, etc.
  • Enterprise Support

    • 24x7 Email / On-call Support
    • Dedicated Relationship Manager
    • Custom dashboards with deep analytics, alerts, and reporting
    • Expert team to consult and improve business metrics

You can try the hosted version in our sandbox.

Got more questions? Please refer to our FAQs page.

Within the repositories, you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations.

Repositories

The current setup contains a single repo, which contains the core payment router and the various connector integrations under the src/connector sub-directory.

🌳 Files Tree Layout

.
├── config                             : Initial startup config files for the router
├── connector-template                 : boilerplate code for connectors
├── crates                             : sub-crates
│   ├── api_models                     : Request/response models for the `router` crate
│   ├── cards                          : Types to handle card masking and validation
│   ├── common_enums                   : Enums shared across the request/response types and database types
│   ├── common_utils                   : Utilities shared across `router` and other crates
│   ├── data_models                    : Represents the data/domain models used by the business/domain layer
│   ├── diesel_models                  : Database models shared across `router` and other crates
│   ├── drainer                        : Application that reads Redis streams and executes queries in database
│   ├── external_services              : Interactions with external systems like emails, AWS KMS, etc.
│   ├── masking                        : Personal Identifiable Information protection
│   ├── redis_interface                : A user-friendly interface to Redis
│   ├── router                         : Main crate of the project
│   ├── router_derive                  : Utility macros for the `router` crate
│   ├── router_env                     : Environment of payment router: logger, basic config, its environment awareness
│   ├── scheduler                      : Scheduling and executing deferred tasks like mail scheduling
│   ├── storage_impl                   : Storage backend implementations for data structures & objects
│   └── test_utils                     : Utilities to run Postman and connector UI tests
├── docs                               : hand-written documentation
├── loadtest                           : performance benchmarking setup
├── migrations                         : diesel DB setup
├── monitoring                         : Grafana & Loki monitoring related configuration files
├── openapi                            : automatically generated OpenAPI spec
├── postman                            : postman scenarios API
└── scripts                            : automation, testing, and other utility scripts

🤝 Our Belief

Payments should be open, fast, reliable and affordable to serve the billions of people at scale.

Globally payment diversity has been growing at a rapid pace. There are hundreds of payment processors and new payment methods like BNPL, RTP etc. Businesses need to embrace this diversity to increase conversion, reduce cost and improve control. But integrating and maintaining multiple processors needs a lot of dev effort. Why should devs across companies repeat the same work? Why can't it be unified and reused? Hence, Hyperswitch was born to create that reusable core and let companies build and customise it as per their specific requirements.

✨ Our Values

  1. Embrace Payments Diversity: It will drive innovation in the ecosystem in multiple ways.
  2. Make it Open Source: Increases trust; Improves the quality and reusability of software.
  3. Be community driven: It enables participatory design and development.
  4. Build it like Systems Software: This sets a high bar for Reliability, Security and Performance SLAs.
  5. Maximise Value Creation: For developers, customers & partners.

🤍 Contributing

This project is being created and maintained by Juspay, South Asia's largest payments orchestrator/switch, processing more than 50 Million transactions per day. The solution has 1Mn+ lines of Haskell code built over ten years. Hyperswitch leverages our experience in building large-scale, enterprise-grade & frictionless payment solutions. It is built afresh for the global markets as an open-source product in Rust. We are long-term committed to building and making it useful for the community.

The product roadmap is open for the community's feedback. We shall evolve a prioritisation process that is open and community-driven. We welcome contributions from the community. Please read through our contributing guidelines. Included are directions for opening issues, coding standards, and notes on development.

  • We appreciate all types of contributions: code, documentation, demo creation, or some new way you want to contribute to us. We will reward every contribution with a Hyperswitch branded t-shirt.
  • 🦀 Important note for Rust developers: We aim for contributions from the community across a broad range of tracks. Hence, we have prioritised simplicity and code readability over purely idiomatic code. For example, some of the code in core functions (e.g., payments_core) is written to be more readable than pure-idiomatic.

Get updates on Hyperswitch development and chat with the community:

  • Discord server for questions related to contributing to hyperswitch, questions about the architecture, components, etc.
  • Slack workspace for questions related to integrating hyperswitch, integrating a connector in hyperswitch, etc.
  • GitHub Discussions to drop feature requests or suggest anything payments-related you need for your stack.

Please read the issue guidelines and search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

Check the CHANGELOG.md file for details.

This product is licensed under the Apache 2.0 License.

Thank you for your support in hyperswitch's growth. Keep up the great work! 🥂

Contributors

More Repositories

1

superposition

Superposition is a context-based configuration management system designed to facilitate safe and flexible rollout of config changes
Rust
348
star
2

services-flake

NixOS-like services for Nix flakes
Nix
330
star
3

purescript-presto

Write Apps like Mathematical Equations!
PureScript
222
star
4

euler-hs

EulerHS: full-fledged framework for creating web backends
Haskell
87
star
5

omnix

🚧 A Nix companion to improve developer experience
Rust
79
star
6

presto-ui

Framework to build native apps using javascript.
JavaScript
66
star
7

hyperswitch-web

ReScript
40
star
8

jrec

Literally the best anonymous records
Haskell
36
star
9

hyperswitch-card-vault

Hyperswitch Card Vault is an open-source sensitive information storage system built on Rust.
Rust
33
star
10

purescript-presto-backend

Flow Monad for your Backend
PureScript
32
star
11

hyperswitch-control-center

Open sourced control center for managing Hyperswitch - an open sourced payment switch.
ReScript
28
star
12

atlas

Implementation of Open Mobility Platform on Beckn
Haskell
26
star
13

medea

A JSON schema language
Haskell
25
star
14

card-validator

Card validation helpers for payment forms.
JavaScript
23
star
15

nix-dev-home

A `home-manager` template providing useful tools & settings for Nix-based development (macOS & Linux supported)
Nix
23
star
16

jenkins-nix-ci

A NixOS module for Jenkins, optimized specifically for running projects using Nix.
Nix
23
star
17

cachix-push

A flake app that can push packages and devshells to cachix
Nix
19
star
18

flakular.in

MOVED TO https://github.com/nixos-asia/website and https://github.com/flake-parts/community.flake.parts
MDX
19
star
19

purescript-sequelize

Purescript wrapper for Sequelize - http://docs.sequelizejs.com/
PureScript
15
star
20

remote-development

NixOS configuration for shared remote development via SSH
Nix
15
star
21

purescript-flow

Generic typesafe UI and API flows for mobile and web apps
PureScript
15
star
22

dui-android

DUI is a framework to build native android apps using javascript
Java
14
star
23

mystique

Javascript framework for building platform independent apps
JavaScript
11
star
24

medea-ps

A JSON schema validator
PureScript
11
star
25

fencer

Fencer is a port of https://github.com/lyft/ratelimit into Haskell.
Haskell
9
star
26

hyperswitch-client-core

ReScript
8
star
27

hoogleverse

Host Hoogle via Nix / NixOS, with handpicked list of packages
Nix
8
star
28

hyperswitch-docs

7
star
29

hyperswitch-sdk-android

Kotlin
7
star
30

todo-app

WIP: A demo Haskell app showing the use of `flake-parts` to enable various dev workflows
Haskell
5
star
31

atlas-gateway

Beckn Gateway Implementation
Haskell
5
star
32

upi-sdk

Java
5
star
33

purescript-logoot-core

A library for creating a collaborative real-time editor using commutative replicated data types
PureScript
5
star
34

purescript-redis

PureScript
5
star
35

hyper-sdk-react

React Native Plugin over Hyper SDK
TypeScript
5
star
36

hyper-pay-sample-integration

Java
4
star
37

zipkin-instrumentation-mysql

JavaScript
4
star
38

hyperswitch-sdk-ios

C++
4
star
39

hyperswitch-encryption-service

Hyperswitch Encryption Service is an open source Encryption, Decryption and Key Management Service
Rust
4
star
40

hyper-sdk-flutter

Flutter Plugin over Hyper SDK
Dart
4
star
41

purescript-backtrack

A monad transformer for handling backtrack in continuation based programs
PureScript
3
star
42

ec-python-client-server-demo

Express Checkout Python Website - ReactJS Client code, Flask REST APIs
JavaScript
3
star
43

ec-android-demo

express-checkout-android-demo
Java
3
star
44

atlas-shared-kernel

Core Modules for Beckn Protocol
Haskell
3
star
45

hyperswitch-saleor-payment-app

Connect hyperswitch with saleor
TypeScript
3
star
46

juspay-sdk-integration-demo

Integration examples for Juspay SDKs
Java
3
star
47

hyperswitch-helm

Smarty
3
star
48

streamly-extras-monitoring

Helper functions for logging and metrics of streams
Haskell
3
star
49

godel-integ-examples

Integration Examples for integrating godel library in your Android project
Java
3
star
50

hyperswitch-sdk-react-native

hyperswitch-sdk-react-native
Kotlin
3
star
51

hyper-webview-flutter

Flutter Library to enhance Juspay's Hyper Checkout Experience for Payment Links opened in WebView
Kotlin
3
star
52

svelte-ui-components

Svelte
3
star
53

expresscheckout-ios-release

ExpressCheckout
Ruby
2
star
54

purescript-bq

Purescript bindings for nodejs-bigquery library
PureScript
2
star
55

MVisa

Ruby
2
star
56

streamly-extras

Haskell
2
star
57

Godel-Integration-Document

Integration document for Juspay's Godel library
2
star
58

purescript-node-websocket

Bindings to node/npm's "websocket" library
PureScript
2
star
59

nix-training

Nix
2
star
60

hyperswitch-woocommerce-plugin

PHP
2
star
61

fast-time

A custom parser of date-time implemented in Haskell
Haskell
2
star
62

hyperswitch-pods

CocoaPods hosting for Hyperswitch iOS SDK
Ruby
2
star
63

direnv-rs

Rust bindings for direnv
Rust
2
star
64

payments-sdk-android-sample-integration

Sample Android Integration Example for Juspay's Payment's SDK
Java
2
star
65

JuspaySafeBrowser

Objective-C
2
star
66

purescript-presto-dom

PureScript
1
star
67

ec-headless-cordova-pulgin

Express Checkout Cordova Integration / Headless Plugin
Java
1
star
68

hyper-sdk-capacitor

Capacitor Plugin over Hyper SDK
TypeScript
1
star
69

ec-react-native-library

React Native wrapper for Juspay Express Checkout SDK
Java
1
star
70

purescript-reflex-dom

Reflex.DOM style UI building library on top of halogen-vdom and PrestoUI
PureScript
1
star
71

mocky

Haskell
1
star
72

just-flake

Convenient way to use `just` in your Nix devShells
Nix
1
star
73

rust-flake

WIP: Like the famous `haskell-flake`, but for Rust.
Nix
1
star
74

purescript-prom-client

PureScript
1
star
75

purescript-data-access

Database abstractions.
PureScript
1
star
76

purescript-parser

Code for learning parsers
PureScript
1
star
77

hyperpay-swiftui-demo

Swift
1
star
78

haskell-sequelize

A port of https://github.com/juspay/purescript-sequelize into Haskell
Haskell
1
star
79

canon

Haskell
1
star
80

ec-node-client

Node.js Client for ExpressCheckout
JavaScript
1
star
81

nix-rs

Rust
1
star
82

hyperswitch-cdk

TypeScript
1
star
83

expresscheckout-php-sdk

PHP
1
star
84

purescript-tracker

PureScript
1
star
85

hyperswitch-api-reference

MDX
1
star
86

diesel-multiconnection-manager

diesel multiconnection manager lets you create and manage connections to multiple database hosts, schemas and database systems in your rust codebase.
Rust
1
star
87

github-ci-nix

WIP: A simple NixOS & nix-darwin module for managing self-hosted GitHub runners
Nix
1
star
88

Integration-kit

PHP
1
star
89

hyperswitch-suite

An open source payments switch to make payments fast, reliable and affordable
1
star
90

flakreate

WIP: Easily create Nix flakes for any project
Rust
1
star