33 releases (17 breaking)

new 0.17.0 Jan 12, 2021
0.16.0 Oct 3, 2020
0.15.1 Jan 17, 2021
0.15.0 Jun 21, 2020
0.0.0 Jun 29, 2019

#31 in HTTP client

Download history 37/week @ 2020-09-27 14/week @ 2020-10-04 6/week @ 2020-10-11 31/week @ 2020-10-18 8/week @ 2020-10-25 38/week @ 2020-11-01 31/week @ 2020-11-08 44/week @ 2020-11-15 31/week @ 2020-11-22 11/week @ 2020-11-29 33/week @ 2020-12-06 6/week @ 2020-12-13 3/week @ 2020-12-20 14/week @ 2020-12-27 30/week @ 2021-01-03 45/week @ 2021-01-10

108 downloads per month
Used in 2 crates

GPL-3.0-or-later

180KB
4.5K SLoC

pipeline coverage crates.io Docs rustc

apca

apca is a library for interacting with the Alpaca API at alpaca.markets. The crate is entirely written in Rust and exposes a fully async API based on the native async/await language feature.

The crate provides access to the majority of functionality provided by Alpaca, including, but not limited to:

  • inquiring of account information
  • changing of the account configuration
  • retrieving of past account activity
  • accessing the market clock
  • submitting, changing, listing, and canceling orders
  • listing and closing open positions
  • listing and retrieving general asset information
  • streaming of account and trade events over WebSocket
  • market data retrieval through Alpaca's Data API (for Polygon support refer to the polyio crate)

For convenient command-line based access to the API, please use apcacli.

Usage

The following example illustrates how to create a Client object and then submit an limit order for AAPL with a limit price of USD 100:

let api_info = ApiInfo::from_env().unwrap();
let client = Client::new(api_info);

let request = order::OrderReqInit {
  type_: Type::Limit,
  limit_price: Some(Num::from(100)),
  ..Default::default()
}
.init("AAPL", Side::Buy, 1);

let order = client
  .issue::<order::Post>(request)
  .await
  .unwrap();

The returned order object can subsequently be inspected to find out details about the order (such as its ID). The full example is available here.

Please refer to the full documentation for more details.

Dependencies

~11MB
~232K SLoC