https://github.com/chills42/icaparse
ICAP parsing library, written in rust
https://github.com/chills42/icaparse
icap parser
Last synced: about 1 month ago
JSON representation
ICAP parsing library, written in rust
- Host: GitHub
- URL: https://github.com/chills42/icaparse
- Owner: chills42
- License: apache-2.0
- Created: 2017-06-15T15:26:31.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T11:47:44.000Z (over 1 year ago)
- Last Synced: 2025-12-13T22:14:44.774Z (about 2 months ago)
- Topics: icap, parser
- Language: Rust
- Size: 89.8 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# icaparse
[](https://crates.io/crates/icaparse)
A push parser for the ICAP 1.0 protocol. Avoids allocations. Fast.
The goal of the library is to support the ICAP specification as defined in [RFC 3507](https://tools.ietf.org/html/rfc3507).
[Documentation](https://docs.rs/icaparse)
## Usage
```rust
let mut headers = [icaparse::EMPTY_HEADER; 16];
let mut req = icaparse::Request::new(&mut headers);
let buf = b"RESPMOD /index.html ICAP/1.0\r\nHost";
assert!(try!(req.parse(buf)).is_partial());
// a partial request, so we try again once we have more data
let buf = b"RESPMOD /index.html ICAP/1.0\r\nHost: example.domain\r\nEncapsulated:null-body=0\r\n\r\n";
assert!(try!(req.parse(buf)).is_complete());
```
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.