ProductPromotion
Logo

Rust

made by https://0x3d.site

GitHub - AgilData/mysql-proxy-rs: A highly scalable MySQL Proxy framework written in Rust
A highly scalable MySQL Proxy framework written in Rust - AgilData/mysql-proxy-rs
Visit Site

GitHub - AgilData/mysql-proxy-rs: A highly scalable MySQL Proxy framework written in Rust

GitHub - AgilData/mysql-proxy-rs: A highly scalable MySQL Proxy framework written in Rust

mysql-proxy-rs

CircleCI Version Docs

An implementation of a MySQL proxy server built on top of tokio-core.

Overview

This crate provides a MySQL proxy server that you can extend with your own custom logic. Here are some examples of use cases for a proxy:

  • Capture a log of SQL queries issued by an application
  • Profiling of query execution time
  • Monitor query patterns e.g. threat detection
  • Record SQL traffic for later playback for automated testing

Usage

The proxy defines the following trait for defining a packet handler for handling request and response packets:

pub trait PacketHandler {
    fn handle_request(&self, p: &Packet) -> Action;
    fn handle_response(&self, p: &Packet) -> Action;
}

/// Handlers return a variant of this enum to indicate how the proxy should handle the packet.
pub enum Action {
    /// drop the packet
    Drop,
    /// forward the packet unmodified
    Forward,
    /// forward a mutated packet
    Mutate(Packet),
    /// respond to the packet without forwarding
    Respond(Vec<Packet>),
    /// respond with an error packet
    Error { code: u16, state: [u8; 5], msg: String },
}

Example

The example proxy passes all queries to MySQL except for queries containing the word 'avocado'. Use the following command to run the example.

Note that we have tested the proxy with rustc 1.13.0-nightly (cbe4de78e 2016-09-05).

$ cargo run --example proxy

Then in a separate window you can test out the proxy. The proxy binds to port 3307 and assumes that a MySQL server is running on port 3306.

$ mysql -u root -p -h 127.0.0.1 -P 3307
mysql> select 'banana';
+--------+
| banana |
+--------+
| banana |
+--------+
1 row in set (0.00 sec)

mysql> select 'avocado';
ERROR 1064 (12345): Proxy rejecting any avocado-related queries

License

mysql-proxy-rs is distributed under the terms of the Apache License (Version 2.0).

See LICENSE-APACHE for details.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory