pub(crate) struct Args {Show 20 fields
pub(crate) cfg_file: Option<String>,
pub(crate) ip: Option<String>,
pub(crate) port: Option<u16>,
pub(crate) login_account: Option<String>,
pub(crate) login_pwd: Option<String>,
pub(crate) login_pwd_md5: Option<String>,
pub(crate) login_region: Option<String>,
pub(crate) auth_server: Option<String>,
pub(crate) log_level: Option<String>,
pub(crate) websocket_port: Option<u16>,
pub(crate) telnet_port: Option<u16>,
pub(crate) rest_port: Option<u16>,
pub(crate) grpc_port: Option<u16>,
pub(crate) rsa_private_key: Option<String>,
pub(crate) json_log: bool,
pub(crate) lang: Option<String>,
pub(crate) rest_keys_file: Option<PathBuf>,
pub(crate) grpc_keys_file: Option<PathBuf>,
pub(crate) ws_keys_file: Option<PathBuf>,
pub(crate) audit_log: Option<PathBuf>,
}Expand description
FutuOpenD Rust Gateway — 完全替代 C++ OpenD
Fields§
§cfg_file: Option<String>XML 配置文件路径 (兼容 C++ FutuOpenD.xml)
ip: Option<String>API 服务监听地址
port: Option<u16>API 服务监听端口
login_account: Option<String>登录账号
login_pwd: Option<String>登录密码明文
login_pwd_md5: Option<String>登录密码 MD5 (32 位小写 hex)
login_region: Option<String>后端连接区域 (gz/sh/hk)
auth_server: Option<String>认证服务器 URL
log_level: Option<String>日志级别
websocket_port: Option<u16>WebSocket 服务监听端口(可选,不指定则不启动 WebSocket)
telnet_port: Option<u16>Telnet 管理端口(可选,不指定则不启动 Telnet)
rest_port: Option<u16>REST API 监听端口(可选,不指定则不启动 REST API)
grpc_port: Option<u16>gRPC 服务监听端口(可选,不指定则不启动 gRPC)
rsa_private_key: Option<String>RSA 私钥文件路径(PEM 格式,启用后 InitConnect 使用 RSA 加解密)
json_log: boolJSON 格式日志
lang: Option<String>界面语言 (chs=简体中文, cht=繁体中文, en=英文)
rest_keys_file: Option<PathBuf>REST API Bearer Token 鉴权:加载 keys.json(futucli gen-key 生成)
不指定时 REST API 无鉴权(保持旧行为,启动 warn)。
grpc_keys_file: Option<PathBuf>gRPC Bearer Token 鉴权:加载 keys.json(futucli gen-key 生成)
不指定时 gRPC 无鉴权。通常与 –rest-keys-file 指向同一文件。
ws_keys_file: Option<PathBuf>核心 WebSocket Bearer Token 鉴权:加载 keys.json
v1.0 起核心 WS(--websocket-port,Futu SDK 使用的 binary WS)支持
握手 + per-message scope 鉴权。客户端用 ?token=<plaintext> query 或
Authorization: Bearer <plaintext> header 传 key。不指定这个 flag 时
WS 无鉴权(legacy 保持兼容,启动 warn)。通常与 --rest-keys-file 指向
同一文件。
audit_log: Option<PathBuf>审计日志输出:JSONL 文件路径或目录
- 带扩展名的路径(如
/var/log/futu-audit.jsonl)→ 单文件 append - 不带扩展名 / 以
/结尾(如/var/log/futu-audit/)→ 每日滚动, 文件名futu-audit.log+ 日期后缀
只记录 auth / 交易 事件(target = “futu_audit”),常规日志不受影响。
Trait Implementations§
Source§impl Args for Args
impl Args for Args
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id][crate::ArgGroup::id] for this set of argumentsSource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§impl FromArgMatches for Args
impl FromArgMatches for Args
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Parser for Args
impl Parser for Args
§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error>
Auto Trait Implementations§
impl Freeze for Args
impl RefUnwindSafe for Args
impl Send for Args
impl Sync for Args
impl Unpin for Args
impl UnwindSafe for Args
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].