Project

General

Profile

Actions

Feature #2696

open

http: implement parser in rust

Added by Victor Julien almost 6 years ago. Updated 4 months ago.

Status:
In Progress
Priority:
Normal
Target version:
Effort:
high
Difficulty:
high
Label:
Protocol

Description

This would replace libhtp.


Related issues 8 (5 open3 closed)

Related to Suricata - Task #2685: SuriCon 2018 brainstormAssignedVictor JulienActions
Related to Suricata - Feature #1947: HTTP2 decoder ClosedPhilippe AntoineActions
Related to Suricata - Feature #3487: mime: multi-part parser in RustClosedPhilippe AntoineActions
Related to Suricata - Bug #5739: htp: handle alloc failure for user dataNewPhilippe AntoineActions
Related to Suricata - Feature #5692: Add brotli content encoding to HTTP/1.1NewOISF DevActions
Related to Suricata - Security #5921: http1: configurable limit for maximum number of live transactions per flowClosedPhilippe AntoineActions
Related to Suricata - Feature #880: memcap http parserNewOISF DevActions
Blocks Suricata - Story #7140: protocols: C to Rust conversionsNewVictor JulienActions
Actions #1

Updated by Victor Julien almost 6 years ago

  • Related to Task #2685: SuriCon 2018 brainstorm added
Actions #2

Updated by Victor Julien almost 6 years ago

Actions #3

Updated by Andreas Herz over 5 years ago

  • Assignee set to Community Ticket
Actions #4

Updated by Victor Julien about 5 years ago

  • Status changed from New to Feedback

It would be great to get some suggestions about what Rust crates would be helpful here.

Actions #5

Updated by Danny Browning almost 5 years ago

For 1.1 https://crates.io/crates/httparse
For 2, https://docs.rs/h2/0.2.0-alpha.3/h2/ but it is futures/async+await based, so would require a runtime running, as well as rust 1.39

Actions #6

Updated by Victor Julien almost 5 years ago

  • Label Protocol added
Actions #7

Updated by Victor Julien over 4 years ago

  • Related to Feature #3487: mime: multi-part parser in Rust added
Actions #8

Updated by Philippe Antoine over 2 years ago

  • Status changed from Feedback to In Review
  • Assignee changed from Community Ticket to Todd Mortimer
  • Target version changed from TBD to 7.0.0-beta1
Actions #9

Updated by Victor Julien over 2 years ago

  • Target version changed from 7.0.0-beta1 to 8.0.0-beta1
Actions #11

Updated by Philippe Antoine almost 2 years ago

  • Related to Bug #5739: htp: handle alloc failure for user data added
Actions #12

Updated by Philippe Antoine almost 2 years ago

  • Related to Feature #5692: Add brotli content encoding to HTTP/1.1 added
Actions #13

Updated by Philippe Antoine over 1 year ago

  • Related to Security #5921: http1: configurable limit for maximum number of live transactions per flow added
Actions #14

Updated by Philippe Antoine over 1 year ago

Actions #15

Updated by Philippe Antoine about 1 year ago

  • Assignee changed from Todd Mortimer to Philippe Antoine
Actions #16

Updated by Philippe Antoine 9 months ago

  • Status changed from In Review to In Progress

Today's status : Rebase to do and differential fuzzing findings to investigate after 7.0.3 release

Actions #18

Updated by Victor Julien 4 months ago

  • Subject changed from http parser in rust to http: implement parser in rust
Actions #19

Updated by Victor Julien 4 months ago

  • Blocks Story #7140: protocols: C to Rust conversions added
Actions

Also available in: Atom PDF