Skip to content

A lightweight HTTP proxy with caching, customizable logging, and support for multiple output formats.

License

Notifications You must be signed in to change notification settings

mekhushi/PlatypusX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlatypusX License: MIT Go

A blazing-fast, lightweight HTTP proxy with intelligent caching, customizable logging, and support for multiple output formats. Designed for performance and flexibility.

Key Features

  • High-Performance HTTP Proxy: Efficiently forwards HTTP requests and responses, minimizing latency.
  • Intelligent Caching: Dynamically caches frequently accessed content, significantly reducing server load and improving response times.
  • Flexible Logging: Tailor logging levels and output formats to gain deep insights into proxy behavior.
  • Multiple Output Formats: Supports JSON, plain text, and other formats for seamless integration with monitoring tools.
  • Lightweight & Scalable: Optimized for minimal resource consumption and effortless scaling.
  • Easy to Deploy: Simple installation and configuration for rapid deployment in any environment.

Why PlatypusX?

In today's demanding digital landscape, performance and efficiency are paramount. PlatypusX is engineered to provide a robust and scalable HTTP proxy solution that enhances your application's speed and reliability. Whether you're optimizing web applications, APIs, or microservices, PlatypusX delivers the performance you need.

Installation

Ensure you have Go installed (version 1.20 or higher). Then, install PlatypusX with the following command:

go get github.com/mekhushi/PlatypusX

Quick Start

  1. Navigate to the cmd/platypusX directory:

    cd $GOPATH/src/github.com/mekhushi/PlatypusX/cmd/platypusX
  2. Run PlatypusX with default settings:

    go run main.go

    This will start the proxy on port 8080.

Configuration

PlatypusX offers extensive configuration options via command-line flags:

Option Type Default Description
-port int 8080 The port on which the proxy listens.
-cache-size string 1GB The maximum size of the cache (e.g., 1GB, 500MB).
-log-level string info The logging level (debug, info, warn, error).
-output-format string json The output format for logs and cached content (json, text).
-upstream-url string "" The upstream server URL to forward requests to.

Example:

go run main.go -port 9000 -cache-size 2GB -log-level debug -upstream-url http://example.com

Advanced Usage

Caching Strategies

PlatypusX supports various caching strategies to optimize performance. You can configure the cache size and expiration policies to suit your specific needs.

Logging Configuration

Customize the logging output to monitor proxy behavior and troubleshoot issues effectively.

Upstream Proxying

Configure PlatypusX to forward requests to an upstream proxy for enhanced security and control.

Contributing

We welcome contributions from the community! Please follow these guidelines:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Write clear, concise commit messages.
  4. Submit a pull request with a detailed description of your changes.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For questions, bug reports, and feature requests, please open an issue on GitHub.

About

A lightweight HTTP proxy with caching, customizable logging, and support for multiple output formats.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages