Commit graph

33 commits

Author SHA1 Message Date
Jason Ish
3dc8b154f3 rust/ffi: add safe thread storage wrapper
Add a typed ThreadStorage<T> wrapper around the thread storage bindings.

Ticket: #8445
2026-06-01 15:56:57 +00:00
Jason Ish
5e0abf1572 rust/ffi: use ThreadVars wrapper in flow callbacks
Update the flow init, update and finish callback registrations to pass the
safe ThreadVars wrapper instead of a raw pointer.

Ticket: #8598
2026-06-01 15:56:57 +00:00
Jason Ish
1cac242948 rust/ffi: use ThreadVars wrapper in eve callback
Update the EVE callback registration to pass the safe ThreadVars wrapper
instead of a raw pointer.

Ticket: #8598
2026-06-01 15:56:57 +00:00
Jason Ish
45762aa644 rust/ffi: use ThreadVars wrapper in thread init callback
Update the thread init callback registration to pass the safe ThreadVars
wrapper instead of a raw pointer.

Ticket: #8598
2026-06-01 15:56:57 +00:00
Jason Ish
5fe88212c3 rust/ffi: add wrapper around ThreadVars
A Rust wrapper around ThreadVars to enforce Rust lifetimes to ThreadVars when
used in a callback.

Ticket: #8598
2026-06-01 15:56:57 +00:00
Jason Ish
144f824f17 rust/ffi: add thread init callback wrapper
Ticket: #8605
2026-05-28 20:49:57 +00:00
Philippe Antoine
b90adcc2bb rust/ffi: move AppLayerTxData to ffi
Ticket: 7666
2026-05-20 17:57:52 +00:00
Philippe Antoine
0773fba5fd rust/ffi: move txdata flags to ffi
Ticket: 7666
2026-05-20 17:57:52 +00:00
Philippe Antoine
2525ea2e37 rust/ffi: move direction to ffi
Ticket: 7666
2026-05-20 17:57:52 +00:00
Philippe Antoine
5440e41314 rust/ffi: move debug validations macros to ffi
Ticket: 7666
2026-05-20 17:57:52 +00:00
Jason Ish
cb69fa4e53 rust/ffi: add flow lifecycle callback wrappers
Provide Rust friendly callback registrations for flow init, update and finish events. These
callbacks are implemented as Rust closures.

Ticket: #8446
2026-05-09 04:17:38 +00:00
Philippe Antoine
5ed394b26b rust/ffi: move AppLayerEvent to ffi
Ticket: 7666
2026-05-06 18:58:47 +00:00
Philippe Antoine
9b12fd9f09 rust/ffi: move helper trait state_get_tx_iterator to ffi
Ticket: 7666
2026-04-30 05:38:06 +00:00
Philippe Antoine
07f37676b6 rust/ffi: move Flags for AppLayerParserState to ffi crate
Ticket: 7666
2026-04-30 05:38:06 +00:00
Philippe Antoine
fb20c69d8d rust/ffi: move APP_LAYER_PARSER_OPT_X const to ffi crate
Ticket: 7666
2026-04-30 05:38:06 +00:00
Philippe Antoine
d81a10126e detect/doc: remove unexisting links
Ticket: 8257

And add TODO comments if rules doc should be written
2026-04-30 05:38:05 +00:00
Philippe Antoine
9677851637 rust/ffi: move app-layer traits to ffi crate
Ticket: 7666

Traits around structures defined in C and bindgened to rust
2026-04-25 17:37:13 +00:00
Philippe Antoine
f803c25f24 rust/ffi: move export_X_data_get macros to ffi crate
Ticket: 7666
2026-04-25 17:37:13 +00:00
Philippe Antoine
54b6885166 rust/ffi: move conf_get_bool helper to ffi crate
Ticket: 7666
2026-04-25 17:37:13 +00:00
Jason Ish
eb46d0129e rust/ffi: add eve callback handler
Wrap the EVE callback handler with a Rust friendly variant that allows
the user to register a callback as a closure which is provided an
already wrapped JsonBuilder object.

Ticket: #8477
2026-04-16 05:58:15 +00:00
Jason Ish
199e844a07 rust/ffi: add mark support to ffi::jsonbuilder
To support Rust friendly EVE callback registration (ticket 8477).
2026-04-16 05:58:15 +00:00
Philippe Antoine
58a71d94b0 rust/ffi: move conf_get helper to ffi crate
Ticket: 7666
2026-04-13 05:01:54 +00:00
Jason Ish
98469b0f56 rust/ffi: fix clippy warnings
Remove the unneeded return.

The other option would be to allow it, but so far in the ffi crate we
don't have any non-default allows.
2026-04-06 12:38:10 -06:00
Philippe Antoine
c53b9df5a2 rust/ffi: move detection helpers to ffi crate
Some checks failed
builds / Fedora (non-root, debug, clang, asan, wshadow, rust-strict, no-ja) (push) Has been cancelled
builds / AlmaLinux 9 (no jansson) (push) Has been cancelled
builds / AlmaLinux 9 (Minimal/Recommended Build) (push) Has been cancelled
builds / Ubuntu 24.04 (cocci) (push) Has been cancelled
builds / Ubuntu 24.04 (RUSTC+CARGO vars) (push) Has been cancelled
builds / Ubuntu 24.04 (unittests coverage) (push) Has been cancelled
builds / Ubuntu 24.04 (unix socket mode coverage) (push) Has been cancelled
builds / Ubuntu 24.04 (afpacket and dpdk coverage) (push) Has been cancelled
builds / Ubuntu 24.04 (pcap unix socket ASAN) (push) Has been cancelled
builds / Ubuntu 24.04 (afpacket IPS tests in namespaces) (push) Has been cancelled
builds / Ubuntu 24.04 (afpacket and dpdk live tests with ASAN) (push) Has been cancelled
builds / Ubuntu 24.04 (fuzz corpus coverage) (push) Has been cancelled
builds / Ubuntu 20.04 (-DNDEBUG) (push) Has been cancelled
builds / Ubuntu 20.04 (unsupported rust) (push) Has been cancelled
builds / Ubuntu 22.04 (Debug Validation) (push) Has been cancelled
builds / Ubuntu 22.04 (Fuzz) (push) Has been cancelled
builds / Ubuntu 22.04 (Netmap build) (push) Has been cancelled
builds / Ubuntu 22.04 (Minimal/Recommended Build) (push) Has been cancelled
builds / Ubuntu 22.04 (DPDK Build) (push) Has been cancelled
builds / Debian 12 (xdp) (push) Has been cancelled
builds / Debian 13 (xdp) (push) Has been cancelled
builds / Ubuntu 22.04 Dist Builder (push) Has been cancelled
builds / Debian 12 MSRV (push) Has been cancelled
builds / Debian 11 (push) Has been cancelled
builds / MacOS Latest (push) Has been cancelled
builds / Windows MSYS2 MINGW64 (NPcap) (push) Has been cancelled
builds / Windows MSYS2 MINGW64 (libpcap) (push) Has been cancelled
builds / Windows MSYS2 UCRT64 (libpcap) (push) Has been cancelled
builds / Windows MSYS2 MINGW64 (WinDivert) (push) Has been cancelled
builds / PF_RING (push) Has been cancelled
Ticket: 7666
2026-04-01 19:55:48 +00:00
Philippe Antoine
267c3baff7 rust/ffi: move STREAM_ constants to ffi crate
Ticket: 7666

reexport them in suricata crate
cbindgen them to C
2026-03-26 19:23:02 +00:00
Philippe Antoine
d77c43c79b rust/ffi: move build_slice macro to ffi crate
Ticket: 7666
2026-03-06 21:30:44 +00:00
Philippe Antoine
4a0143c8d4 rust/ffi: move cast_pointer macro to ffi crate
Ticket: 7666
2026-03-06 21:30:44 +00:00
Philippe Antoine
71b59f6dbe rust/ffi: move IPPROTO_TCP to ffi
and reexport in suricata

Allows to reduce dependencies to full suricata crate

Ticket: 7666
2026-02-24 05:56:40 +00:00
Jason Ish
6b850dddb8 rust/ffi: JsonBuilder wrapper around C JsonBuilder API
For use by plugins that need to work with JsonBuilder.
2026-02-13 13:34:27 +00:00
Jason Ish
8b69089cb8 rust/ffi: more rust friendly plugin registration
A plugin can now create a "Plugin" struct with Rust strings.  The
`into_raw` method converts it to a raw pointer suitable for returning
during plugin registration.
2026-02-13 13:34:26 +00:00
Jason Ish
0999530726 rust/ffi: rust wrapper around eve filetype registration 2026-02-13 13:34:26 +00:00
Jason Ish
b4db7bdaee rust/ffi: add logging (debug) wrappers
Mostly a copy of Suricata core's logging wrappers into the ffi crate.

These are not yet used by Suricata-core as they do require the
Suricata library to be available, which is not the case with tests. And
the `cfg(test)` parameter is not passed through to sub-crates.

However, this does allow a plugin (or library) to call the logging
macros without depending on the "suricata" crate.

Ticket: #7666
2026-02-13 13:34:26 +00:00
Jason Ish
2c51744ccc rust/ffi: stub out a rust ffi crate
This crate is for Rust wrappers around the -sys crate which includes
only raw bindings. This is the place to add nice wrappers around those
bindings, however it should remain clear of dependencies on the main
Suricata core crates.

Ticket: #7666
2026-02-13 13:34:26 +00:00