- Renamed various request related types to follow more uniform naming scheme
- Added
api::v2::{calendar::ListReqInit,watchlist::CreateReqInit}
types - Removed
api::v2::{order::ChangeReqInit,assets::ListReqInit}
types in favor ofDefault
impl for corresponding request types - Made various types non-exhaustive
- Added
name
attribute toapi::v2::watchlist::Watchlist
type - Added support for updating a watchlist
- Removed
ApiError::code
member after endpoint reported errors stopped returning it - Renamed
AuthenticationFailed
variant of endpoint errors toNotPermitted
- This variant is now used to signal a multitude of conditions, including certain order submission issues
- Bumped minimum supported Rust version to
1.63
- Bumped
websocket-util
dependency to0.12
- Bumped
tokio-tungstenite
dependency to0.20
- Expanded crate documentation with a high level overview
- Bumped
async-compression
dependency to0.4
- Exported
api::v2::updates::{Authenticate,Listen}
enums as part of unofficial unstable API
- Added support for overwriting default realtime data bar, quote, and trade types
- Added support for working with custom v2 realtime data streaming URLs
- Added
FillOrKill
andImmediateOrCancel
variants toapi::v2::order::TimeInForce
type - Changed various
data::v2::stream::{Bar, Quote, Trade}
members fromu64
toNum
- Switched to using new stream authentication request message format
- Adjusted publish workflow to also create GitHub release and Git tag
- Introduced
vendored-openssl
to build with vendoredopenssl
library - Added GitHub Actions workflow for publishing the crate
- Made more types serializable/deserializable
- Added support for historic trade retrieval via
data::v2::trades
- Adjusted
data::v2::last_quote
module to work with multiple symbols and renamed it tolast_quotes
- Added
client_order_id
member toapi::v2::order::ChangeReq
- Made
quantity
andtime_in_force
members ofapi::v2::order::ChangeReq
optional - Added
quantity_available
member toapi::v2::position::Position
- Bumped minimum supported Rust version to
1.59
- Bumped
websocket-util
dependency to0.11
- Bumped
tokio-tungstenite
dependency to0.18
- Added optional
price
member toapi::v2::account_activities::NonTradeActivity
type - Switched to using GitHub Actions as CI provider
- Bumped minimum supported Rust version to
1.57
- Added
gzip
compression support for transparent API response compression controlled by default enabledgzip
feature - Added support for subscribing to realtime trades
- Reworked symbols related types in
data::v2::stream
module - Added
class
member toapi::v2::order::Order
type - Added
symbols
member toapi::v2::orders::OrdersReq
type - Added
Deserialize
implementation for more types - Updated
ActivityType
enum to be in sync with upstream variants - Made
api::v2::position::Position
exhaustive - Bumped
uuid
dependency to1.0
- Made more types serializable/deserializable
- Renamed various
Trade*
types toOrder*
- Removed
#[non_exhaustive]
attribute from various types
- Added support for subscribing to realtime quotes in addition to aggregate bar data
- Adjusted data API request types to include optional data feed to use
- Adjusted
data::v2::last_quote::Get
to accept aLastQuoteReq
object - Added
Crypto
variant toapi::v2::asset::Class
enum and made it non-exhaustive - Added
Otc
variant toapi::v2::asset::Exchange
enum and made it non-exhaustive - Introduced
api::v2::order::Status::is_terminal
method - Replaced infallible
From<Into<String>>
conversion forasset::Symbol
with fallibleTryFrom
- Made members of
ApiInfo
publicly accessible and added more URL members - Renamed various 422 HTTP status error variants to
InvalidInput
- Changed various limit types to
usize
- Changed
api::v2::orders::OrdersReq::limit
to be anOption
- Added example illustrating how to stream realtime market data
- Renamed
data::v2::bars::BarReq
toBarsReq
- Deprecated
data::v2::bars::BarReq
- Deprecated
- Introduced
data::v2::bars::BarsReqInit
type - Introduced
ApiInfo::into_parts
method
- Adjusted
Subscribable
trait to make all created futures implementSend
- Added
api::v2::calendar
module for retrieving historic and future market open and close times - Added support for historic quote retrieval via
data::v2::quotes
- Fixed JSON decoding error when no bars are returned in response to
data::v2::bars::Get
request
- Added support for realtime market data streaming via
data::v2::stream::RealtimeData
- Reworked account update streaming support using a subscription based
design
- Renamed
api::v2::events
toapi::v2::updates
- Removed
event
module providing low-level access to update streaming
- Renamed
- Renamed
InsufficientFunds
variant ofapi::v2::order::PostError
andapi::v2::order::PatchError
toNotPermitted
- Removed support for streaming account updates
- Removed
data::v2::stocks
module alias - Switched from using
test-env-log
totest-log
- Bumped minimum supported Rust version to
1.56
- Switched to using Rust 2021 Edition
- Added
async-trait
dependency in version0.1.51
- Bumped
websocket-util
dependency to0.10.1
- Bumped
tokio-tungstenite
dependency to0.16
- Introduced support for retrieving the last quote for a symbol
- Aliased
data::v2::bars
module todata::v2::stocks
- Deprecated
data::v2::stocks
module alias
- Deprecated
- Introduced support for historic data retrieval using v2 API
- Added bindings for watchlist management
- Added support for submitting notional orders
- Adjusted all quantities to be of type
Num
to fully support trading with fractional quantities - Tagged more functions and methods as
#[inline]
- Removed support for v1 historic data API
- Migrated most usages of
SystemTime
date times tochrono::DateTime
- Added
Activity::time
method for retrieving the time stamp of an account activity - Marked several more types as
non_exhaustive
- Made price related attributes of
Position
type optional after announcement of breaking API change at Alpaca - Added
fractionable
attribute toAsset
type - Switched to using tarpaulin for code coverage collection
- Formatted code base using
rustfmt
and checked in configuration- Added enforcement of code formatting style checks in CI
- Added CI checks for auto generated code documentation
- Removed
time-util
dependency
- Added
ApiInfo::from_parts
constructor - Adjusted
Client::issue
to accept request input via reference - Introduced
ConversionError
type- Replaced
unwrap
s with proper error variants
- Replaced
- Updated
ActivityType
enum to be in sync with upstream variants - Added support for unknown
ActivityType
variants - Switched to using
thiserror
crate for defining error types - Updated
num-decimal
to use version0.4
of thenum-*
crates - Bumped minimum supported Rust version to
1.46
- Bumped
http-endpoint
dependency to0.5
- Bumped
websocket-util
dependency to0.8
- Bumped
tokio-tungstenite
dependency to0.14
- Introduced trailing stop order types
- Added support for paging of account activity data
- Added support for specifying reported account activity direction as
well as
until
andafter
times - Bumped
time-util
dependency to0.3
- Added
PendingReplace
variant toTradeStatus
enum - Added support for listing nested orders
- Replaced usage of private
serde
API with inline code - Bumped minimum supported Rust version to
1.44
- Excluded unnecessary files from being contained in release bundle
- Replaced
async-tungstenite
dependency withtokio-tungstenite
- Removed
chrono
dependency - Bumped
hyper
dependency to0.14
- Bumped
hyper-tls
dependency to0.5
- Bumped
tokio
dependency to1.0
- Bumped
websocket-util
dependency to0.7
- Converted
NonTradeActivity::quantity
fromu64
toNum
- Bumped
http-endpoint
dependency to0.4
- Bumped
websocket-util
dependency to0.6
- Bumped
async-tungstenite
dependency to0.8
- Bumped
serde_urlencoded
dependency to0.7
- Enabled CI pipeline comprising building, testing, linting, and
coverage collection of the project
- Added badges indicating pipeline status and code coverage percentage
- Bumped
websocket-util
dependency to0.5
- Bumped
async-tungstenite
dependency to0.5
- Added example illustrating how to submit a limit order
- Bumped
http-endpoint
dependency to0.2
- Added
stream_raw
function for interfacing with raw event streams - Adjusted streaming function to expect reference to
ApiInfo
object - Removed serialization support for account & trade events
- Removed
TradeStatus::to_order_status
method - Bumped
websocket-util
dependency to0.4
- Added support for handling unknown variants for
account::Status
,asset::Exchange
,events::TradeStatus
, andorder::Status
- Added
PendingReplace
order status variant - Removed serialization support for
Exchange
enum
- Added support for bracket-style orders
- Added
From
implementation forasset::Symbol
type - Added support for almost-default construction of various request types
- Converted
Account::daytrade_count
tou64
- Decreased tracing verbosity by one level
- Bumped
num-decimal
dependency to0.2
- Added
average_fill_price
toOrder
type - Fixed issue when deserializing non-trade activity object without a quantity
- Added
quantity
field toNonTradeActivity
type - Added
ReplaceRejected
andCancelRejected
variants toTradeStatus
enum - Use absolute values for quantity reported in
Position
objects
- Added support for negating order and position
Side
types
- Added support for associating client IDs with orders
- Converted various quantities from
Num
tou64
- Hooked up
order_id
field toTradeActivity
type - Bumped
time-util
dependency to0.2
- Bumped
websocket-util
dependency to0.3
- Added support for querying
/v2/account/activities
endpoint - Added support for listing orders based on their status
- Introduced
Replaced
variant toTradeStatus
enum
- Added support for changing an existing order
- Introduced
TradeStatus::to_order_status
helper method - Implemented
Eq
andHash
for the variousId
types
- Added support for opening and closing auction orders
- Factored out
time-util
crate
- Added support for accessing
/v2/account/configurations
endpoint - Added support for querying
/v1/bars/{timeframe}
endpoint - Added support for serializing account & trade events
- Switched from using
log
totracing
as a logging/tracing provider - Switched to using
serde_urlencoded
for encoding query parameters - Bumped
http-endpoint
dependency to0.1.1
- Added support for liquidating an existing position
- Added support for short selling
- Removed
AssetReq
andPositionReq
types - Bumped
async-tungstenite
dependency to0.3
- Migrated streaming functionality from
websocket
toasync-tungstenite
- Dropped dependency on
futures
0.1
- Factored out
http-endpoint
crate - Factored out
websocket-util
crate - Correctly implemented
std::error::Error::source
forError
type - Bumped
env_logger
dependency to0.7
- Bumped
uuid
dependency to0.8
- Removed support for
v1
API - Implemented
FromStr
for various/v2/asset
types
- Converted
api
functionality to useasync
/await
syntax - Bumped
test-env-log
dependency to0.2
- Added support for accessing various
v2
endpoints:/v2/account
/v2/asset
/v2/orders
/v2/positions
- Bumped
websocket
dependency to0.24
- Initial release