quasar-rpc 0.1.0

Quasar is a lightweight Solana RPC client built on Hyper.
Documentation
# Quasar

Quasar is a lightweight Solana RPC client built on Hyper.

The subset of the JSON-RPC spec that Quasar implements is extremely limited.  Any / All PRs will be reviewed promptly.

Usage:

```rust
    let endpoint = String::from("https://api.mainnet-beta.solana.com");
    let commitment = solana_commitment_config::CommitmentConfig::processed();
    let rpc = quasar_rpc::Rpc::new_with_commitment(endpoint, commitment).await;
    let config = solana_client::rpc_config::RpcAccountInfoConfig {
        encoding: Some(solana_account_decoder_client_types::UiAccountEncoding::Base64),
        commitment: None,
        data_slice: None,
        min_context_slot: None,
    };
    let get_account_result = rpc.get_account(&solana_pubkey::Pubkey::default(), Some(config)).await;
```

Benchmarks were run on a dedicated Helius RPC node in SF, requests sent from Chicago.

Results:

`get_account.rs`:

```
Method                        Avg (KB)     Min (KB)     Max (KB)       StdDev     Net (KB)    Time (ms)
───────────────────────── ──────────── ──────────── ──────────── ──────────── ──────────── ────────────
hyper_request_http_2              10.0          9.9         18.4          1.0          0.1        153.5
quasar_base64                     10.4         10.2         19.1          1.0          0.1        116.4
quasar_default                    10.4         10.2         18.8          1.0          0.1        128.7
quasar_base58                     10.4         10.2         18.7          1.2          0.1        123.0
hyper_request_http_1              16.9         16.8         25.3          0.8          0.1        152.9
reqwest                           76.7         76.6         85.3          1.2          0.1        117.4
solana_raw                        82.0         81.7         90.5          1.6          0.1        124.8
solana_base64                     82.2         82.1         90.8          1.2          0.1        160.1
solana_base58                     82.4         82.1         90.8          1.6          0.1        143.8
quasar_base64_zstd               138.4        138.2        146.8          1.0          0.1        118.3
solana_default                   210.4        210.2        219.0          1.4          0.1        122.3
solana_base64_zstd               210.5        210.1        218.9          1.6          0.1        126.4
```

`get_multiple_accounts.rs`:

```
Method                          Avg (KB)     Min (KB)     Max (KB)       StdDev     Net (KB)    Time (ms)
─────────────────────────── ──────────── ──────────── ──────────── ──────────── ──────────── ────────────
hyper_multiple_http_2               19.2         19.0         27.6          1.0          0.1        126.5
quasar_multiple_base64              20.6         20.5         29.0          1.0          0.1        120.2
quasar_multiple_base58              20.7         20.5         29.0          1.0          0.1        127.5
quasar_multiple_base64_zstd         20.7         20.5         29.1          1.0          0.1        127.1
quasar_multiple_default             20.7         20.5         29.0          1.0          0.1        122.4
hyper_multiple_http_1               26.4         25.9         35.5          2.0          0.1        123.9
reqwest_multiple                    85.9         85.7         94.5          1.2          0.1        122.2
solana_multiple_raw                 98.6         98.4        107.2          1.4          0.1        150.6
solana_multiple_base64             102.6        102.5        111.3          0.9          0.1        118.2
solana_multiple_base58             102.7        102.5        111.3          1.2          0.1        121.8
solana_multiple_default           1255.2       1255.1       1263.8          1.2          0.1        128.1
solana_multiple_base64_zstd       1255.4       1255.1       1263.8          1.6          0.1        121.0
```

`get_program_accounts.rs`:

```
Method                         Avg (KB)     Min (KB)     Max (KB)       StdDev     Net (KB)    Time (ms)
────────────────────────── ──────────── ──────────── ──────────── ──────────── ──────────── ────────────
quasar_program_base64_zstd     277612.0     277458.6     277723.0        112.1          1.6       4110.3
reqwest_program                560246.3     559893.6     560766.9        375.8          0.0       2381.7
hyper_program_http_2           581414.1     581386.1     581465.8         36.6         15.4       8602.7
quasar_program_default         582137.7     582047.8     582263.5         91.6          0.3       4472.0
quasar_program_base64          582266.9     582019.4     582439.6        179.5         -2.3       4068.7
solana_program_raw             710406.7     709917.3     710696.4        348.0         -0.1       2394.0
hyper_program_http_1           714507.7     714136.2     714732.2        264.6          0.0       3714.3
solana_program_base64         1084415.5    1084024.9    1085020.1        433.6         -0.1       2600.0
solana_program_base64_zstd   14350734.3   14350290.8   14350972.1        313.9         -0.1       5201.3
solana_program_default       14350977.7   14350519.3   14351372.0        351.1         -0.1       4595.0
```


`connection_pool_size.rs`:

```
Method                        Avg (KB)     Min (KB)     Max (KB)       StdDev     Net (KB)    Time (ms)
───────────────────────── ──────────── ──────────── ──────────── ──────────── ──────────── ────────────
quasar_2_connections              10.4         10.2         18.8          1.0          0.1        123.2
quasar_3_connections              10.4         10.2         18.8          1.0          0.1        127.0
quasar_1_connection               10.5         10.2         18.8          1.2          0.1        150.9
```