package com.example.ratelimit;
public class TokenBucket {
private final long capacity;
private final long refillTokens;
import time
import threading
from collections import deque, defaultdict
class SlidingWindowLimiter:
-- KEYS[1] = current window key, KEYS[2] = previous window key
-- ARGV: limit, window_ms, elapsed_ms
local limit = tonumber(ARGV[1])
local window = tonumber(ARGV[2])
local elapsed = tonumber(ARGV[3])
class ParamSchema
def initialize(fields)
@fields = fields
end
def coerce(params)
# Gemfile
gem 'graphql'
# Installation
# rails generate graphql:install
Rails.application.config.middleware.insert_before 0, Rack::Cors do
# Development CORS - allow any localhost
allow do
origins(
/http:\/\/localhost:\d+/,
/http:\/\/127\.0\.0\.1:\d+/,
package domain
import (
"errors"
"fmt"
)
<?php
namespace App\Http\Resources;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
package paging
import (
"encoding/base64"
"encoding/json"
"time"
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Problem
DEFAULT_TYPE = "https://api.example.com/problems/about:blank".freeze
attr_reader :type, :title, :status, :detail, :instance, :extensions
def initialize(status:, title:, detail: nil, type: nil, instance: nil, extensions: {})
import time
import uuid
from dataclasses import dataclass
import redis