Skip to main content

A Reversi/Othello engine implemented in Rust with Python bindings

Project description

Rust Reversi

A high-performance Reversi (Othello) game engine implemented in Rust with Python bindings. This library provides a fast and efficient Reversi implementation by leveraging Rust's performance while maintaining a friendly Python interface.

Core implementation is based on rust_reversi_core.

Features

  • High-performance implementation in Rust
  • Efficient board representation using bitboards
  • Easy-to-use Python interface
  • Comprehensive game state manipulation methods
  • Move generation and validation
  • Random move sampling for testing
  • Verified move generation through Perft testing
  • Alpha-beta pruning based search with customizable evaluation functions
  • Arena system for AI player evaluation
    • Local arena for direct player evaluation
    • Network arena for distributed evaluation
  • Process-based player execution with timeout management
  • Fair player evaluation with color alternation

Installation

pip install rust-reversi

Basic Usage

from rust_reversi import Board, Turn, Color

# Start a new game
board = Board()

# Display the current board state
print(board)

while not board.is_game_over():
    if board.is_pass():
        print("No legal moves available. Passing turn.")
        board.do_pass()
        continue

    # Get legal moves
    legal_moves = board.get_legal_moves_vec()
    print(f"Legal moves: {legal_moves}")

    # Get random move
    move = board.get_random_move()
    print(f"Random move: {move}")

    # Execute move
    board.do_move(move)
    print(board)

# Game over
winner = board.get_winner()
if winner is None:
    print("Game drawn.")
elif winner == Turn.BLACK:
    print("Black wins!")
else:
    print("White wins!")

Using the Local Arena

The Local Arena allows you to evaluate your own AI players by running them locally on the same machine. This is useful for testing and comparing different versions or strategies of your AI implementations:

from rust_reversi import Arena
import sys

# Create an arena with two AI players
python = sys.executable
player1 = ["python", "player1.py"]  # Command to run first player
player2 = ["./player2"]             # Command to run second player

# Initialize the arena
arena = Arena(player1, player2)

# Play 100 games (must be an even number for fair color distribution)
arena.play_n(100)

# Get statistics
wins1, wins2, draws = arena.get_stats()
print(f"Player 1 wins: {wins1}")
print(f"Player 2 wins: {wins2}")
print(f"Draws: {draws}")

# Get total pieces captured
pieces1, pieces2 = arena.get_pieces()
print(f"Player 1 total pieces: {pieces1}")
print(f"Player 2 total pieces: {pieces2}")

Using the Network Arena

The Network Arena provides a system for playing against other people's AIs over a network. This allows for competitive matches and tournaments between different developers' AIs:

# Server side
from rust_reversi import NetworkArenaServer

# Create a server that will run 1000 games per session
server = NetworkArenaServer(1000)

# Start the server
server.start("localhost", 12345)
# Client side
from rust_reversi import NetworkArenaClient
import sys

# Create a client with an AI player
client = NetworkArenaClient(["python", "player.py"])

# Connect to the server
client.connect("localhost", 12345)

# Get results after games
wins, losses, draws = client.get_stats()
pieces_captured, opponent_pieces = client.get_pieces()
print(f"Wins: {wins}, Losses: {losses}, Draws: {draws}")
print(f"Pieces Captured: {pieces_captured}, Opponent Pieces: {opponent_pieces}")

Creating AI Players

AI players should be implemented as scripts that:

  1. Accept a command line argument specifying their color ("BLACK" or "WHITE")
  2. Read board states from stdin
  3. Write moves to stdout
  4. Handle the "ping"/"pong" protocol for connection verification

Example player implementation with alpha-beta search:

import sys
from rust_reversi import Board, Turn, PieceEvaluator, AlphaBetaSearch

# Maximum search depth
DEPTH = 3

def main():
    # Get color from command line argument
    turn = Turn.BLACK if sys.argv[1] == "BLACK" else Turn.WHITE
    board = Board()
    
    # Initialize evaluator and search
    evaluator = PieceEvaluator()
    search = AlphaBetaSearch(evaluator, DEPTH, win_score=1 << 10)

    while True:
        try:
            board_str = input().strip()

            # Handle ping/pong protocol
            if board_str == "ping":
                print("pong", flush=True)
                continue

            # Update board state
            board.set_board_str(board_str, turn)
            
            # Get and send move using alpha-beta search
            move = search.get_move(board)
            print(move, flush=True)

        except Exception as e:
            print(e, file=sys.stderr)
            sys.exit(1)

if __name__ == "__main__":
    main()

API Reference

Classes

Turn

Represents a player's turn in the game.

  • Turn.BLACK: Black player
  • Turn.WHITE: White player

Color

Represents the state of a cell on the board.

  • Color.EMPTY: Empty cell
  • Color.BLACK: Black piece
  • Color.WHITE: White piece

Board

The main game board class with all game logic.

Board Constructor
  • Board(): Creates a new board with standard starting position
Board State Methods
  • get_board() -> tuple[int, int, Turn]: Returns current board state (player bitboard, opponent bitboard, turn)
  • set_board(player_board: int, opponent_board: int, turn: Turn) -> None: Sets board state directly
  • set_board_str(board_str: str, turn: Turn) -> None: Sets board state from string representation
  • get_board_src() -> str: Returns string representation of board state
  • get_board_vec_black() -> list[Color]: Returns flattened board state as if current player using black pieces
  • get_board_vec_turn() -> list[Color]: Returns flattened board state with current player's pieces
  • get_board_matrix() -> list[list[list[int]]]: Returns 3D matrix representation of board state
  • get_child_boards() -> list[Board]: Returns list of child boards for all legal moves
  • clone() -> Board: Creates a deep copy of the board
Piece Count Methods
  • player_piece_num() -> int: Returns number of current player's pieces
  • opponent_piece_num() -> int: Returns number of opponent's pieces
  • black_piece_num() -> int: Returns number of black pieces
  • white_piece_num() -> int: Returns number of white pieces
  • piece_sum() -> int: Returns total number of pieces on board
  • diff_piece_num() -> int: Returns absolute difference in piece count
Move Generation and Validation
  • get_legal_moves() -> int: Returns bitboard of legal moves
  • get_legal_moves_vec() -> list[int]: Returns list of legal move positions
  • get_legal_moves_tf() -> list[bool]: Returns list of legal move positions as boolean mask
  • is_legal_move(pos: int) -> bool: Checks if move at position is legal
  • get_random_move() -> int: Returns random legal move position
Game State Methods
  • is_pass() -> bool: Checks if current player must pass
  • is_game_over() -> bool: Checks if game is finished
  • is_win() -> bool: Checks if current player has won
  • is_lose() -> bool: Checks if current player has lost
  • is_draw() -> bool: Checks if game is drawn
  • is_black_win() -> bool: Checks if black has won
  • is_white_win() -> bool: Checks if white has won
  • get_winner() -> Optional[Turn]: Returns winner of game (None if draw)
Move Execution
  • do_move(pos: int) -> None: Executes move at specified position
  • do_pass() -> None: Executes pass move when no legal moves available
Board Representation
  • __str__() -> str: Returns string representation of board

Board is displayed as:

 |abcdefgh
-+--------
1|XXXXXXXX
2|OOOOOOOO
3|--------
...

Where:

  • X: Black pieces
  • O: White pieces
  • -: Empty cells

Search and Evaluation Classes

Evaluator (Base Class)

Base class for board evaluation functions. Extend this class to implement custom evaluation functions. set_py_evaluator() method can be used to set a Python evaluator class for evaluation. See test/players/custom_eval_player.py for an example.

Evaluator Constructor
  • Evaluator(): Creates a new evaluator
Evaluator Methods
  • evaluate(board: Board) -> int: Evaluates the given board state. override this method in subclasses to implement custom evaluation functions.

  • set_py_evaluator(Evaluator) -> None: Sets a Python evaluator class for evaluation

PieceEvaluator (extends Evaluator)

Simple evaluator that uses piece difference for evaluation.

PieceEvaluator Constructor
  • PieceEvaluator(): Creates a new piece-counting evaluator
LegalNumEvaluator (extends Evaluator)

Evaluator that uses number of legal moves for evaluation.

LegalNumEvaluator Constructor
  • LegalNumEvaluator(): Creates a new legal-moves-counting evaluator
MatrixEvaluator (extends Evaluator)

Evaluator that uses a matrix of weights for evaluation. Use 8x8 matrix for evaluation. Scores are calculated as product of matrix weights and board state. (player equals 1, opponent equals -1)

MatrixEvaluator Constructor
  • MatrixEvaluator(matrix: List[List[int]): Creates a new matrix-based evaluator with given weights
WinrateEvaluator Constructor
  • WinrateEvaluator(): Creates a new evaluator that predicts winrate.
WinrateEvaluator Methods
  • evaluate(board: Board) -> int: Evaluates the given board state. override this method in subclasses to implement custom evaluation functions.

  • set_py_evaluator(WinrateEvaluator) -> None: Sets a Python evaluator class for evaluation

AlphaBetaSearch

Alpha-beta pruning based search for finding best moves.

AlphaBetaSearch Constructor
  • AlphaBetaSearch(evaluator: Evaluator, depth: int): Creates a new search instance with given evaluator and search depth
AlphaBetaSearch Methods
  • get_move(board: Board) -> int: Returns best move found within specified depth
  • get_move_with_timeout(board: Board, timeout_ms: int) -> int: Returns best move found with iterative deepening up to timeout in milliseconds
  • get_search_score(board: Board) -> int: Returns search score for current board state
ThunderSearch
ThunderSearch Constructor
  • ThunderSearch(evaluator: WinrateEvaluator, n_playouts: int, epsilon: float): Creates a new search instance with given evaluator, number of playouts, and epsilon value
ThunderSearch Methods
  • get_move(board: Board) -> int: Returns best move found within specified playouts
  • get_move_with_timeout(board: Board, timeout_ms: int) -> int: Returns best move found up to timeout in milliseconds
  • get_search_score(board: Board) -> int: Returns search score for current board state

Arena Classes

Local Arena

The Arena class manages local matches between two AI players.

Arena Constructor
  • Arena(command1: List[str], command2: List[str]): Creates a new arena with commands to run two players
Arena Methods
  • play_n(n: int) -> None: Play n games between the players (n must be even)
  • get_stats() -> Tuple[int, int, int]: Returns (player1_wins, player2_wins, draws)
  • get_pieces() -> Tuple[int, int]: Returns total pieces captured by each player
Network Arena Server

The NetworkArenaServer class manages distributed matches between players connecting over network.

NetworkArenaServer Constructor
  • NetworkArenaServer(games_per_session: int): Creates a new server that runs specified number of games per session
NetworkArenaServer Methods
  • start(address: str, port: int) -> None: Starts the server on specified address and port
Network Arena Client

The NetworkArenaClient class allows AI players to connect to a network arena server.

NetworkArenaClient Constructor
  • NetworkArenaClient(command: List[str]): Creates a new client with command to run the player
NetworkArenaClient Methods
  • connect(address: str, port: int) -> None: Connects to server at specified address and port
  • get_stats() -> Tuple[int, int, int]: Returns (wins, losses, draws)
  • get_pieces() -> Tuple[int, int]: Returns total pieces captured by player and opponent

Development

Requirements

  • Python >=3.8
  • Rust toolchain

Building from Source

git clone https://github.com/neodymium6/rust_reversi.git
cd rust_reversi

# Create and activate virtual environment (recommended)
python -m venv .venv
source .venv/bin/activate

# Install dependencies
make install

# Or for development setup
pip install -r requirements.txt
make dev

Available Commands

  • make help: Show available commands
  • make requirements: Save current dependencies to requirements.txt
  • make install: Install the project dependencies
  • make build: Build the project with maturin (release mode)
  • make dev: Build and install the project in development mode
  • make test: Run tests
  • make run: Run the main.py script
  • make bench: Run benchmarks
  • make bench-save: Run benchmarks and save results
  • make bench-comp: Run benchmarks and compare with previous saved results
  • make bench-repo: Generate a report with benchmark results, and update the README

Testing

The project includes comprehensive test coverage including:

Perft Testing

The Perft (performance test) suite verifies the correctness of the move generator by counting all possible game positions at different depths. This ensures:

  • Legal move generation is working correctly
  • Game state transitions are handled properly
  • All game tree paths are being correctly explored

Two testing modes are implemented:

  1. Standard mode: Counts leaf nodes at each depth
  2. Pass-exclusive mode: Counts leaf nodes. Depth does not decriment by passing turn

These tests compare against known correct node counts for the Reversi game tree, providing confidence in the game engine's core functionality.

Performance

The library uses bitboard representation and efficient algorithms for:

  • Legal move generation
  • Board state updates

Benchmark Results

Benchmark history from 2024-12-15 to 2025-01-24

Summary

Test Current Min (Historical) Max (Historical) Trend
Random 1000Games 17.27ms 17.27ms 23.45ms 📈 Improved
Perft 8 68.03ms 68.03ms 115.85ms 📈 Improved
Arena 1000Games 1.01s 870.07ms 1.63s 📈 Improved

Latest System Information

  • CPU: Apple M1
  • Architecture: arm64
  • Cores: 8
  • Python: 3.9.21

Performance History

Performance History

Operations Per Second History

Operations History

Note: Performance may vary based on system specifications and load.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rust_reversi-1.4.3.tar.gz (44.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (742.6 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl (772.4 kB view details)

Uploaded PyPymusllinux: musl 1.2+ i686

rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (843.5 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (738.5 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (583.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (661.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (642.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (626.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (595.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (574.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (743.3 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl (772.7 kB view details)

Uploaded PyPymusllinux: musl 1.2+ i686

rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (843.9 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (739.0 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (661.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (643.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (595.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (574.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl (740.5 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_i686.whl (769.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_armv7l.whl (840.1 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl (735.7 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (660.5 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (640.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (592.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (571.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_x86_64.whl (741.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_i686.whl (770.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_armv7l.whl (841.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_aarch64.whl (737.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (582.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (659.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (641.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (624.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (594.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (573.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-cp313-cp313-macosx_11_0_arm64.whl (521.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rust_reversi-1.4.3-cp313-cp313-macosx_10_12_x86_64.whl (537.9 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rust_reversi-1.4.3-cp312-cp312-win_amd64.whl (418.6 kB view details)

Uploaded CPython 3.12Windows x86-64

rust_reversi-1.4.3-cp312-cp312-win32.whl (394.6 kB view details)

Uploaded CPython 3.12Windows x86

rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_x86_64.whl (741.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_i686.whl (771.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_armv7l.whl (842.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_aarch64.whl (737.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (582.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (659.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (641.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (625.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (595.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (573.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-cp312-cp312-macosx_11_0_arm64.whl (521.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rust_reversi-1.4.3-cp312-cp312-macosx_10_12_x86_64.whl (537.8 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rust_reversi-1.4.3-cp311-cp311-win_amd64.whl (418.7 kB view details)

Uploaded CPython 3.11Windows x86-64

rust_reversi-1.4.3-cp311-cp311-win32.whl (394.5 kB view details)

Uploaded CPython 3.11Windows x86

rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_x86_64.whl (742.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_i686.whl (773.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_armv7l.whl (842.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_aarch64.whl (738.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (583.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (661.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (642.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (625.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (595.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (574.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-cp311-cp311-macosx_11_0_arm64.whl (524.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rust_reversi-1.4.3-cp311-cp311-macosx_10_12_x86_64.whl (542.3 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rust_reversi-1.4.3-cp310-cp310-win_amd64.whl (418.6 kB view details)

Uploaded CPython 3.10Windows x86-64

rust_reversi-1.4.3-cp310-cp310-win32.whl (394.4 kB view details)

Uploaded CPython 3.10Windows x86

rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_x86_64.whl (742.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_i686.whl (773.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_armv7l.whl (842.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_aarch64.whl (738.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (583.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (661.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (642.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (625.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (594.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (574.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-cp39-cp39-win_amd64.whl (419.1 kB view details)

Uploaded CPython 3.9Windows x86-64

rust_reversi-1.4.3-cp39-cp39-win32.whl (395.2 kB view details)

Uploaded CPython 3.9Windows x86

rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_x86_64.whl (743.3 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_i686.whl (773.7 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_armv7l.whl (843.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_aarch64.whl (739.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (583.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (662.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (643.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (625.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (595.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (574.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

rust_reversi-1.4.3-cp38-cp38-win_amd64.whl (419.2 kB view details)

Uploaded CPython 3.8Windows x86-64

rust_reversi-1.4.3-cp38-cp38-win32.whl (395.3 kB view details)

Uploaded CPython 3.8Windows x86

rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_x86_64.whl (743.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_i686.whl (773.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_armv7l.whl (842.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARMv7l

rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_aarch64.whl (738.9 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (583.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (662.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (642.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (625.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (595.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARMv7l

rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (574.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

Details for the file rust_reversi-1.4.3.tar.gz.

File metadata

  • Download URL: rust_reversi-1.4.3.tar.gz
  • Upload date:
  • Size: 44.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.1

File hashes

Hashes for rust_reversi-1.4.3.tar.gz
Algorithm Hash digest
SHA256 38971e313debcf710596110e1eb04219706433c65b0ee7adf48862557df1b718
MD5 f12eacf134a8186344c8013a11c7aed7
BLAKE2b-256 7441588fd91fd2d42c1614cd4b6bdd16f34c519b7640c4abeb0de70290f7e163

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f8fbfcd4993a387c2f0ce3c459e166f3209f2c30346f8836bd54a55185e1b3f4
MD5 2dc671b81de7c6924b4c283b8dcbfe6a
BLAKE2b-256 873d712be24322311443d2816947c6726e240b7cec3f32e3958f4e002ca4e42c

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8c21f743baeacc33ab8c419be35b59d677c2075e15f7f5cc20fb3f2809f9abcf
MD5 059b747692e5bc63b0c5ec119d9cfb32
BLAKE2b-256 9d7876a281e5f00ef0bf22384c9bf88722767bf775fe1259a26ffa3beef22160

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0e2dbe9fbb2c65d56073c1b684ef8f4562acf96dd1b904dd83527f66b98fe14b
MD5 816f2ffb7bc0205e91079a9f508f14cf
BLAKE2b-256 798a9dd5e2c8e8bb6d4514ca8fb643d26f821b03b4cd313fa1398a08a1c39768

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c3ad5b79cb4b4d2c39a967c1914543927638c0918b111c445ded477ddfa26cef
MD5 266bf2e22e4e5790e4768640c7f702fd
BLAKE2b-256 101713cc7384185bf6b2bc0d9b5ff7a084f6551a714194fd3289c77ecd129a6f

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c390127dd095d4f1727e9f8cc95781314f1f6f353d3d6809c079e60fa7b5b7e3
MD5 230a94b8984807a8bb7e327964459f01
BLAKE2b-256 5d1e9132d95002b5351ab2eb5cdf27898b1b93a96e6ec2ee4d760640b0040959

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 020a99e4ec7b2100623b63640de2f662d800398a0f2fd13c29fd36699568f34f
MD5 69082eae53f5a116f72cf3a38700b0e5
BLAKE2b-256 748d351b67b9f052e5e20bd50165c565bf8d7bf0c4f3006aa4160d00ef561f49

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6fe26c73de87031076728bcdf1862ee3c4af62b1e72553550c5cb5c72d19f108
MD5 d32ed60a8ee25b168234616452a0957d
BLAKE2b-256 f612fe5d515272b22ebe72eb6723f941f77a88467c63738e665d03d5e7ed6049

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d09a6e2363c6da7f6b885ad62d78b50b11f1a979b9e25b6964247b99500ade88
MD5 c53f004e22747a16463f0f7376876783
BLAKE2b-256 69a8e5672422f311a43473757d6cdac7ed9d2293131559812a49493879893127

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 71e0a18f9f2ca73974743dbfbd04e14cd4a7c53809e8bd9b22de58af578726a9
MD5 79b4a98c02c3c5dadba05acdad297763
BLAKE2b-256 06c619e28c8ffaabd619d84fb7bab23bbf4cb1119d54b01ceee92295e0b99b2c

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2be0b088f61eb9d4d969588789fd2cf5ad6ceb02a8084a0c9b8afdde0ec1b197
MD5 cd784e137ac134759efe9cc74ad8d383
BLAKE2b-256 e33aa7deaecd72d9db2da10b4ac6363159255b77c72357a205d2cda1d73e0bca

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f9497dfad914ccef150090255475f32c553ec5cf8fe62c8a6d87c9a01440c866
MD5 958cad838c6581b4da9e0dd19b5f0c58
BLAKE2b-256 30202894cbbe2e304f4b80f018761464ebb3383ef7a2cecfe269504c955eac36

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b1b34b0dd20d9136a808e8e419431cbba95d377c5ece04b1eaff7204d9b1369b
MD5 8602f59b53789e1799834675ca0ec4eb
BLAKE2b-256 cb3dba4deafa79dc73876d5accff5daceecaa58f4b3e422e1db88fe2179a2c6a

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 bdfd9906c07055d1551926c5c732a23a9667dfc3ae31b901808262e2d4a574f6
MD5 928241b635309581f7944596f5b67cd0
BLAKE2b-256 a05cce0db40e4d64124921be4cbbd0c75cafaa0a8aeadc889ebcb6c11ec28ed4

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7ad499a5eaee77d99edee2d572b0411331d05ec96df6e511b674726094d69c7a
MD5 d61e5b754a7f53baff4349ea46a5fdc7
BLAKE2b-256 281782d3044313a0843fe9e9e4b387500c0d340ae035fabefdee2a7b1a42a519

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f230e9f599ac4d50ddab02b549a55f428aef7b39ed72168729dfe08aa778f7ea
MD5 06a95c5c4d18a80f9b5ddfae8476951b
BLAKE2b-256 d73d82203439ee956ca475de4443025761dd594e49e87edb0e9b52bf972a20f5

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 69670898c95b169f72c1c685ec21da08e95832d47479088011a4e02ee5246924
MD5 5776aac9808d62aa573eca8e7dd40a71
BLAKE2b-256 f6f52eff094675be34193e1a1ee09dcd3ce69f6678ed4d0b811616dad09d6d52

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 64933d6d95781fbb0c35cb4715a22ebdef14c4857441aa77ef031d37248aa7ec
MD5 95f07b7ff5ae1a6e0a07e42cb8d53a7d
BLAKE2b-256 610486f09b0af3a0f8f63a60f9762035fcb2cebc1896b0894d365426d34a17b2

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d492d942a7f5c9a97cc95536b263cfb168c08e84a80e1d878e1ff1b89db965f6
MD5 6bacf8f726e8231069f22d26973b7a26
BLAKE2b-256 34483d8c98a95bae9e372688562e5e8eb3d73ebcc044965a32e0ea1fdc1b71d5

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8bffbb752bead886006b6be9e1462f97938df8307046bdfe9ee2824bea6f2edb
MD5 1edab18eda517600c3cb9dbab63bfd66
BLAKE2b-256 b05e7376654d107b431dc34ec7158cd151edf24fd80984f3924f123fe5905dd8

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 540bba29ceab1942cc3400d7fb9b9780e691384f31d2e173e3745947bfe78937
MD5 af11f5e56955cec3f54830bb7a7fdd2d
BLAKE2b-256 a13044cd5098a230d0723a87f2f2216b4c82efbf7bf68264d603388888c1bdbd

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5a4a667ed13daefc50851d7908d7c058b4a7c07b31640966779e37347ce0a778
MD5 c4a1a5378cf0542ac2823cd06745311b
BLAKE2b-256 ee09f671759f794740490ba874e7c1e62707beacd78a31e264efbb230eb56b08

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5c512058a5761f61b2799fd127fe95acede99c2ecc68eda3224930e3b81131ce
MD5 6e99613919a76738b8dfc615675ff9af
BLAKE2b-256 587d1be6efa2152bf32207b0719edc06b14dbdf6c752e4e6418b16da0195fdf5

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e13696730331a55ea7da35eae91efb1ddafd8407de10750198fcf586de2348d5
MD5 19347c6122daef5a7dabbb26da77693f
BLAKE2b-256 f8743478870d72e95ebaa44b9bad961024d7e28f5cc50e3ba6300b7125aac863

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a185334a80d3970a36b3d7d405e658a752e2cb4111936bf7e6ee1aa6425bd13c
MD5 271f5cb1fee8d556bfff3ffde4c0cfbb
BLAKE2b-256 72f43477e8ad8992e628b7afe45e7d27c77ec7e33e7168fd016d92643ffdb7f1

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d3c82ad1f83695ebb93bbfb8afe5da051b0a982bf99dc1c44da384ec1c838d32
MD5 4f2c71e61c662f21c29f5b3742d33182
BLAKE2b-256 3b6ebea833a85cad61eb40973c60d6df136f227e57fb5bee992d390185e1d163

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7785dfbd3f161a9a8db673bd617809a45c186cbfd69bfcac275df59b549c3206
MD5 399185224f9fd11002e0c39c10ab114b
BLAKE2b-256 a67ec250aec18dc729b15f7c72f3bab27964ddd3d8a4b4c04abd1c42d54cafa3

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8ee41596f0031513f41f5495dc0f1c19fde2d6ee808a79df28431bf5a9b336c9
MD5 a5e53dbca1abfd3f7b2cab66b4099398
BLAKE2b-256 4f50875989bb4371685f6eb4b8c215c6537f1cdbfe785fcbbc405000d4819403

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1f1adb59eefe40902b563251ef23eaf3dc6bb1a5c19e5efdda7456ad0753a3dc
MD5 7dcd1bc5cd8504e5b1312f191444b140
BLAKE2b-256 be8cb25a6db6f52c30910820d122b365119605dec1c0d1375c86d1730e5c8b25

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 129af3b30d5fcad8e8001e87a9dd72502ff5952b197586649455eff82b9c095f
MD5 4885887f63a6124da0d6046b37861d18
BLAKE2b-256 caf7f4f9bc76a0391bfc8787c8354543ebb990489366741d68e811d480fb2e4e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ef0dc8933724eba71ba5c75f3386364824b3c2757e53bc56e88d48f5509cc3c1
MD5 28d147c1aa4397d966ebb770505b5b08
BLAKE2b-256 99eb907ca0cd078a74693b4956ebc00edbbcd4d6bc0e86a3a2e4abf005e0220a

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d20e1b0fc09c4eb0cf2100ea289f32c0c9e06a86787eb75a8a4c7cf6e9eb407
MD5 7435e2f179dddae7805a742cc3893eca
BLAKE2b-256 28710883cde63a0af68fb4eac1d5e14da1174b30525b21bfa62893f0c0172724

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5d6d0cc41ca58ffd1e7503a0dbe28c0158c48ceed62703e9cb5a8adaae80a46b
MD5 5e0b5c90a24fd0ed36f08cb39a36374b
BLAKE2b-256 afb0c062067ea5613124077def1e3b8ced91f218b87cc27354f86ff9dba1e517

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c5cb252257310fe53c5e22e9f7132ffc1df2c56b6a7e752a815997ac651f68a5
MD5 f53e5a623cc23a73c1a603c7d85836d5
BLAKE2b-256 93ad938f73e54897b0f898285685baa8ec4b5e203d4506794c4cbbcd87882137

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a0c5e88cd5f7c9983f89f870233a40ec5afd58cf2c81f4f23d1976c9c40dfa71
MD5 513f64db039995a106f71b87bc0f11c7
BLAKE2b-256 0fdb474daa498aa6751c29737144bc5f8ea885c80f5371ce230f77d4ecaf1363

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f2b8f5850f1a9785fb15f488a61a86c1c312dc383876071853d80d059482a179
MD5 3327bb2a75a3d852abd674558ff4969a
BLAKE2b-256 446b47c61e5a9706723c2ecafee1ecb1289cd08101f9f17f3b211de3f56d275b

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a257969704c482c7d8e5c172e82807a1056535b03169becadad9a432b0abbccf
MD5 84b88c90445a03d9e9c728f4b84665f7
BLAKE2b-256 7ecbefcf9e569c338fd91e6c7185852d4713ceb35843d6909274ba7671d08adb

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bfe50355cb9e9ab242e919c7e94ec2aaa1bbb4cbef3b54da20b20ba377783d4c
MD5 e3a951afb8f085ccc0a07f4dde6c49b9
BLAKE2b-256 a3973ad96143de5ff7338104bef304fa3a1aa05afaf85877ff3df260258656bc

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5255a197f6e18867b2deeb8e625a83b600bf2bdff1d8fad3b369a08931bb39ed
MD5 efa70857cc4e9ab484a4fc36a13090e6
BLAKE2b-256 424dc91da3ca4b0ba7992ef0abbc15860a077b68721b86164b78fd980c1a0b6e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 99991b44faa3a10dbbf4106006758406f9e1380b8cdceefaf88278e59d3a1566
MD5 97223a4fc9973cd01142b1625a3e1365
BLAKE2b-256 c880d0093066532f0128370c0579532aa5257c8d0567df907c4017bceb629833

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 aeececa6dda8f866752d1c7aa2b037cd89c65a23d1c4c32c30f5fde5ee38cfb5
MD5 c6ba10a3f46fe4882d941cd22a41f6e6
BLAKE2b-256 dc6a53f826201b47726191c30c3b299bfc97403ed6100a63f670f5b649843d5d

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fb459d719841fd23788c0951f3e747b41a63866f855871dfd5ed0766c9553c57
MD5 83296d51503ff72dd6f79146bd9843ed
BLAKE2b-256 634f241b7ad57b58b457e58a0630f27621ff94710b078a81aeb9470454fb4472

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f1f7eb0c466d376c9006d45b249dfd824135ca3f1d8ed4e149675d8d52b653c9
MD5 ede01a5ff0e671dba18c453f052bf904
BLAKE2b-256 a9a589e9491ac6294ae8e3f1a450158cfe29969d3d41110af01d5328d125e431

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d7e373a1b3eea3037a3225054ebd581b41f1ee8b3dcdeb624ea8a6c3b61b1031
MD5 c2eeeb8f1d6e49487d652cfc6d1543d3
BLAKE2b-256 d8cb5f8da6c8807b850d879407f6a47707d27e40d18b8a4b15164285751027e1

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 30eb8cdb6c3cea870f3d492db75ea24a562176574f02a64b287ff15619e5126e
MD5 d52df639fecb61e60fff228385ec2ed5
BLAKE2b-256 6c9c04fa15648a6e266139d3e41a38f57f1c00848432522603c63210ae31dc4e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00a2085d8da189a2308dc4fc32fc46c4e8a7d7a662258db49af023c5f4547368
MD5 6ee19da6ad545268425ab5f7733dc46d
BLAKE2b-256 53ceeee88b541fcea811ba81384ab7f3970559fca5653c7c2515acbcf11cb8d7

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ddfb00d856ea71287a192464c85569f0bb9da3e7eb8480c60a73c1399060cd3c
MD5 b2b7b16fe995f32fdf10de2b83d45344
BLAKE2b-256 68a5f932fa8ea1dc6f27bda1c44b0eac180fe8957a5c5ca8402a6b4b81b98f81

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9488b4c14edf7d36d429aecd7268c2cdaa24782498d3f789b96cc97be01aba8c
MD5 dc91250c55162a10fb0ca4df8b970f26
BLAKE2b-256 deb0ba45baaf9daa7e7343988a8f51be632898ba8bb3917b6d80153256bc5b0f

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1dceb91398bb83174159f39fc73f573f5cbb9898e9ae3912df5176bc7f82cf09
MD5 daa24959c92dfd21d2844bfe34a83141
BLAKE2b-256 07dd9c7540c6f0ca97db2daf83b5c249d4f3b42939ee5cdc125b60d82582d07e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a1e2013c911d02d40ca98effbdd2be3718e4b0e984ac1debbe670fd04ae368ed
MD5 68fb723c26172378c20f95a5695f2165
BLAKE2b-256 64ba2a50774fd793cf8156026aa26c6ff5f71ac46c2693cb9d909c4a143f0cb8

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 045ce9f9878789638036369239a639863d5a1437bb4d90d40d678e3cb2c26fc5
MD5 142e0ebb887eeabb477e696a5d763b16
BLAKE2b-256 69c958c0cde2dc5f5015ed98da8f468c79e9c0ffbc4953b68cdb1bbf5c7d5825

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18a9a6e1a94adbadb500ca97e44ca155d0df2590b42482e362c78c51f729653c
MD5 9c6ed3f517d36469b76d09da4279cb96
BLAKE2b-256 bfa36a61134c3313d86cdfb422794676bb861263b270dc2a026a02dc4ec30b8e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5303f4c3b86ae9ce6b2da3963e8911afcbfca889b62ae60093a9f8bcd494bcac
MD5 becb914cd2f7c873a4e49fdd5589209e
BLAKE2b-256 551b9159cab78612c2713369b7488bbf88947d6d4c9ab3e6be9d18a45eeca206

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1608df7581dbcf677797f0067f3beccd3aceb13413c8fda880206fd982cb2d6b
MD5 8138581aa316a34b601c7fc34e147448
BLAKE2b-256 b301d52e023df77c4e4988ab2505b374929db0bd5b2d720f239a8ab4a492222f

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 a68eda0360b1b5a661678c39ef0509bc1498945fa76ac1cfccb81b42f36dd57b
MD5 9a81fba5dad7ce5fbd0b77aa8cd43818
BLAKE2b-256 96cf2c316b6086656ebda30e254f7988fb9aa1909e6e834a4049307e62aa5ed8

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 177a38c8524673d6cef31a16ec7ac598189c59427d102830223777e698eeb494
MD5 c6d7f5fc317b1e6e8a8082300cb76a3f
BLAKE2b-256 eb9c0850341eb1a9c72e8ab638ec900be4e9af91970de49bdb4dc125683171d7

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3ef915c3fd4e9226888d9a458fedf214d99a13cc43a31514e7f653ad6b2195ac
MD5 8755de0e6859aaccb33f4e784b0c079e
BLAKE2b-256 5996cb42dffde3f5d07b597d8f4e988130bf074b17567c1efb46bb971f31f0e2

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 60e165237acaa138b7531cc2d326280858056b5a175e33fdf56e006b2f468f34
MD5 cdf1aa0256aae3313314bbf0f8feaf84
BLAKE2b-256 50ddfcf09b3e1e12004a4dbb1628a57e854a03ebb7d5911acd6e7bc570d9c0aa

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 34816baa9f0f41791fb853ee3f66d452109bc61f6ce6a7ce4a47f28507f917c9
MD5 c65209401c6b68aff562c0b89ac160fe
BLAKE2b-256 1c5bc20a092d76bedc2074ca9afea7d12362ee876d1f13243bae895379e00eda

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 64b0a810b02b2f1ef09c02e3e463e2b12df0064a07f5424d4cbc2545ea83c4d2
MD5 b3a6ab9ad31d32ed930c91493f794083
BLAKE2b-256 20f7afec2373740ae0db77a2bd225fe73a40b99e2adf25aea0475f1bec7d775a

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 6e688f97fa813f3b47935bc8bccc289df6055aaf39e6b57645319afeb99a2ce7
MD5 c076403b31be671c7fecb8deff6cd331
BLAKE2b-256 eee3830a83a424237ab1ac524244019d5751e7b408045ab47045cf25e594debd

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b0abf88a9751ba958414614980637faea23acc0bc1e3182e78e1eb7e64462288
MD5 ff545edfd81cd7ca7add207b55c4b1cc
BLAKE2b-256 cca7bbd31788afd34a4a8d6d6c31eaed9d445c1fa189b634f1612669c9d91b4e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c22f908330af1e161b5fc76d0ad049a53931878b08c1ef8c1c25385a36c01823
MD5 359787c4940a8c6ed63c816d7be0840c
BLAKE2b-256 9da8b1d64f3424fdcb5a4e03e6d3908144c195582e40f7e0a34818138018ebb0

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 848f8cf82a0c3ac0ce41b6cc399ae44837bf716e635458cc8c546f1fb26b8404
MD5 f7237a963d9376f5d8b407307820409d
BLAKE2b-256 f381182a52dc6c98c1cb6cafbab50af1ab1f7914a5b02f2b7bf9d73ab8242f66

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 40b7d3eb0ae0a89c70d6e7d6924141e008e7b7384ab8d15ef41c1d446330547c
MD5 a6f022b5669af3bc555a3d90c02ca5c8
BLAKE2b-256 371cedfcc2152c66b19aea8976dd5a2549552cf675ed21c18887cb1e1d0ca69b

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c6b0c50e8e55bfed4fe16d7a0123963e1ed9c2f07eeb4ab599e835693d13dca
MD5 7f22e099725de336d2a4807aaf149104
BLAKE2b-256 7f4279a7b3d76117bbff4726c0a2468119076590c71e680899b07c248a01780a

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6179e58e547946b52d3aa77374e2824988c8cc61b0efe30408d45ea258061fe9
MD5 56eebe84918ced1b628cad7e0acf92cd
BLAKE2b-256 b2acbe80ab8f34691005b684b4528bbd19b4fc9031a7470acf13004d368ba2d5

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4b5abf39505680a06ea5ca5174e6e62af2b1947dbe8d9abef93539594f6a211d
MD5 31a47d8fc89a33083b174020d0239fba
BLAKE2b-256 bc8e6759de87a4bd2c5f42eecb73b41b8f6164b56429900ad05c85e93720e6ea

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 1b77a94e44e500f8573a97e6a38f7b367e7e6b9aa19d18f8e2e3495fdca88582
MD5 af3a7bad3ce10ee913e51b745151fdba
BLAKE2b-256 76845787e89013db4cc133a580b014e6fcacd1cc89d33d5589d4e65777790e95

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8c5ea58ee3225d0d606bb57e698ecbac56ea225610c100ec2059e9d7b833cd38
MD5 769bb134215e02f77aae74256e13a726
BLAKE2b-256 2eb86c2f08a23a54dbe9d4ae01f077a3a0726d3e4cac648f87ae8c7c5adb04fb

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 98ded69f6f405226c196468c1afc29bc119f1cd598cdeb5f94e09097166783e4
MD5 77e10097c4db813b177e73de3c1a8d38
BLAKE2b-256 eacb7721654266bd7d44fe8d0d660ebde996ca75d50400f35bc3c80192930cdd

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 96e5174347b82f2dc32dbc8f86f93499b09dd46e66778acdb8e2aaa7d41858f2
MD5 f611974f1206c651968799956c4d0519
BLAKE2b-256 384237aa43391376e1c61cec2d8e0bdb4d297df0c8e5162b3df260150b15c97e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0a8b1fc6e8774168e9d1db8b6f19e918d255e40e7069e7a44870d4f4ed89a1c0
MD5 1832d002c1e31a742cf43cc178c22fcc
BLAKE2b-256 4cd15224ec8348d57306b23c7cf1b7d040688e00645b0907b6e38a7bd0458422

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1141304a1781fe4578a0e84c4f48bb086612d31ee0b64172fb81777e6dcb8965
MD5 176fbe56a59dadf75993ab3dd7094a88
BLAKE2b-256 f355cc88cccf791eacd65cdfaac33479c129daf07f16fc8fbd77c855eaec03a4

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b5d4727e7913b947ea7eaffe4be6ed50de91281a8656931abf0f02b6592cc1b7
MD5 865518553ee71eb813a6b837e46a7164
BLAKE2b-256 4239eb263164a34c6f55eac0a834e0fc3cf55be04817071f576a98d718812995

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b4410d76f26250c954117dd511156800b1d5f08d971ada70182312e5ee616c0c
MD5 42e2ee05ea7a3e028f6bac2c5a82bebe
BLAKE2b-256 3ca213fe3fb6f0966b6f911c8639c97ff9d8208d118b77310dc89406aa63b6f9

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 50fd80a07a7196d3f60105a42a6781b2ca2d7407fe41e2cfee486231ef4a6ea8
MD5 6b3627279f9c13a48dbfdbd4f842d574
BLAKE2b-256 45c0393c71ac476710b597a70e5744c36560d0dbfa53ad7a65133654e203b50a

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 aa92e0b1fff4d650f9efb9800ad82874d1f0e0ec1c1fda1c87bef91fbca2b602
MD5 f33e84b5e4f2a60a6a440b4e3189040c
BLAKE2b-256 155d6d9f120a4729da16a955c681de1f88589a2d8e8223330a28fe4a0eae0006

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 55f5adfda06d7e95ed7bbc09e6b91a8a71804985d3dbbaa2ac20cc84fd6251ee
MD5 223e039029506da51c89ff165196fbea
BLAKE2b-256 c12e5d20dcf71dbd84376bf6eede1a1712cabf91a4b050b82fb5572d23ce3cb4

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f7cf0c8c723499ced03f94ae92ed0ef2b40a9f5ab0e05f13928b6d9eddec6c34
MD5 a123181d5f74dfead185c81f9294c2ef
BLAKE2b-256 fa6711b1f2036ef9842a3e117d0d54d23389148dcc507b89f76aa782e49e65c9

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-win32.whl.

File metadata

  • Download URL: rust_reversi-1.4.3-cp39-cp39-win32.whl
  • Upload date:
  • Size: 395.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.1

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 e715ead2d89b7e3a1dfd474c014b9faa3998a0e3acfbcd19d7fe6bd26d7f52f9
MD5 7e6343060a104a9e404134dab0f95bc0
BLAKE2b-256 075bb7222756c97218dfe5e4e5732e13c8f94d2534d6365040b2022335853816

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd5aa339ae01eeb77a6c678fd0725165b068d5ad72021d9b064aa708df71ca42
MD5 ce84a55158726bc34016bf1227ec6a10
BLAKE2b-256 0745881501107c15e3c382f9d6000105f691962df07bf1ffd5ad14bb10ebee40

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3ab541e59de32d34222ab0728e9a5058b36232fb631d1ce03a68db0396bd5594
MD5 ca84cfa12ae19ee4c420063f3f7ed88a
BLAKE2b-256 806740b62182528d148b4458ad0254e03296fcf1c537d58e33fa41bf19769cac

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f5e2927a4b3db26859f7d714dbbe00ebb89dd9db22721cc6d298dad27180df50
MD5 0ae3c947adc59873ec3a377e0a209a25
BLAKE2b-256 6e6e0bdb8243b0d003f8cdd1553f9cfdd45d6fea390ab8cf306264db59497839

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0937fd989d77042388dc658a13f944aae66b256ff284dff775971a1d19197689
MD5 2de9f3fbd8b495e1d22a2354b335cdf4
BLAKE2b-256 4daac7cdbffa0c12e5a143942e874fb4d73ad1b6992a601386d4a70e0b71fe15

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b7daa555daa27b9c71feecb6b7ebbd45d3ce4a2a69cfc143d7589d8ad18c51e
MD5 d7071a6d11bdc2c29d5eca20b3bfddd1
BLAKE2b-256 ec04831ca0a227459a3e4483a4edfc48b65e77018afab3678e0b287b940409c1

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 09ad1e531eb420887f2dc8c76ac16849e2e0341df274517ba90b4e616ca13cd1
MD5 cfd8ab981ae4ffbd05f19c25a72fd1aa
BLAKE2b-256 1059fcd0ee97f78cd9767489b3a137ffad4f88fe063a5eb0fd50a138f621f68a

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 83581dfe2c045fa4b3851499a228e14a4a4b2c2972c10d38b6696371f64d6fdb
MD5 7865881d6f863e9f693f4f5304b86b29
BLAKE2b-256 41957bdb81ed844d9c47e7e6c576be441389b6906647426a159ecc6b92c2e06e

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f7a0363c33be4c973c19b12d11103fa7d64d958b7bdeac6cb43616d245aaef9d
MD5 1757ffe049ed4e6f06d8b911c01aac80
BLAKE2b-256 54738ea4323dfb640e36f1e3031c63ca7e22703d50bf7678d2312574fd70e4e3

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5686f463edfa85f414900eac006c1e853cf5295a4e1277e2136b711d899a9d99
MD5 0f293ae68217f8da6fe4e376e8f27a43
BLAKE2b-256 8580c99041a9bf9d654ad06e94e5f53b3d0dd705b55104c9b7c44eeea43c5ec1

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a60da9ed5f424f21d29c02d34a37942324d43181356553a4ed844b1835725365
MD5 c36b37414db176ba1b8d2996a204c616
BLAKE2b-256 3b718fb5f8b2aea19af172f25be3b12549e7e77a9ccdaba7e2c5182f6f6b5b6c

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 38b60f6bc2ad2465ddd57702663b87f85c42ea8a7182b33ea30fea288116a69c
MD5 5b0457d4be1862c5c46325375f898e7a
BLAKE2b-256 332213a2345d6e7bafaec90b3ba99243aae95d6fe4e4729b7693459b1d0dc9ff

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-win32.whl.

File metadata

  • Download URL: rust_reversi-1.4.3-cp38-cp38-win32.whl
  • Upload date:
  • Size: 395.3 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.1

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 994b821310b58ea5e5962aaa9ba42781e0d01b31971c63033396404b91ca8799
MD5 55e87b429536b0233f29f92f5c8fd371
BLAKE2b-256 91820199cf0ddd32feb1eee4f3d29ad2b8b975c18bee4005fce37c9622b52f89

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8445387e2a82a0a225e57cad0890eebd8cac8e4b95483518e9842809f26b7e0f
MD5 da965f5cc894c96c69030ba6bec82b11
BLAKE2b-256 a8c4fb7a7cf15c8949b4020ac329129171f0fffab421c96ae3bf8cf8c91517e7

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d491c67d234dbbb813e97de3d95a7d1f8a61006fe65a0439712196ebe7aa162f
MD5 bff4c7e83a70b5ef201a655acff5a942
BLAKE2b-256 3eaad51553bf585c58ae01b937676635c032f270dcc8430824d7cb875ca45069

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 19533ce8042b1d825302f02fce3453d1b4549d4fcc9f0b6399036dce24fd3198
MD5 01d1a2f8b728f0818c7255d05b451510
BLAKE2b-256 33439861ce5165670be9bf5c8a7a7d96029fee78d97b9a856442143490bf93fe

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6d9ae066a532cb3d0f503309cd75cf2dbea1f1d67a2702bce3cb3bf51115bdfb
MD5 b023f55f453c4ea6a09c686ad4bfd303
BLAKE2b-256 131e771573731af43d9df04feb8cf375055a8573c926eabd6dde89e37fc265e0

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e04fcfc89e2e204b5d88a74dc94ccde9c167bfc79457b462e44ee36fe09c8647
MD5 eb359559d0c7ba81edb25f19de11f64f
BLAKE2b-256 344e1fb84ffa89a884a43be06eb016ee1fe5716f432bc33e7d78cc2ce196c133

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b464ae30b59d669f9b6f648ef2ecaa709841993988a42ad6e3db0761b2749677
MD5 54f26d4b64e44540cc78c875c4454daf
BLAKE2b-256 03ec2f21a8a829e3b26ab1d54de2807880583ad8393b7bf9568880d5120382c1

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f17dad258ba45c31351bce53dc37b0f359cba0563244544087c8bd0242b7d202
MD5 36dfb577a47baf65d6ae282128618387
BLAKE2b-256 7e0e78f054c37e5b80dcc8bdda7dcce7365965b47c06c51d45f5d750776529a3

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e3619b8c093355a38b906c90b0192c1b36120e36d115b04f95188c3f91c4028f
MD5 65918119f548a4d3755e90e4eab422ac
BLAKE2b-256 e30bc2d5a1ecf22a2e390eb71e61bd0faec1872481636fd0ce44875c1b2592dd

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4154d28dae139324a926fb4a340d5ccf3f83d2b37abafad606fd728cac0ce1c0
MD5 005002b3761d462b890b6f8811e3dd9e
BLAKE2b-256 3abd526f36a5ed872dc9c3ab6f4849d14b8d401ad5577f6c302790f964bef89c

See more details on using hashes here.

File details

Details for the file rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_reversi-1.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8dd83543d6897a37944e3f41dca5488e24455028ef06c8b2bf22021abb17bd35
MD5 5a9c85fe3e337a04e248223e4c50010b
BLAKE2b-256 5e12b4c5ea08623076d15a2878ca329b29516ae295e8ddc7f571b25e14a7615e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page