Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
511 commits
Select commit Hold shift + click to select a range
86f213c
Merge pull request abonander/multipart#64 from jseyfried/remove_unuse…
abonander Feb 18, 2017
f993a4d
Prototype owned/borrowed API
abonander Jan 19, 2017
c5fff1c
Prototype nested boundaries
abonander Jan 20, 2017
3c13bb1
Remove unused impl details
abonander Jan 21, 2017
e022e69
Add nested file fields to local_test
abonander Feb 4, 2017
be340c2
Fix Nested API
abonander Feb 4, 2017
f7deade
`std::io::copy()` already continues on interrupt
abonander Feb 20, 2017
50fa01d
Use a builder type for file saving
abonander Feb 20, 2017
9156231
Fix bugs in `next_entry()`; export `ReadEntry` as an empty trait with…
abonander Feb 21, 2017
4cb78bb
Bump alpha version
abonander Feb 21, 2017
da0c1ac
Deny missing documentation; add missing documentation
abonander Feb 21, 2017
ade4b3c
Remove prototype impl of nested fields and vestigial support; add tes…
abonander Feb 22, 2017
85e8c9b
Bump alpha version
abonander Feb 22, 2017
f205f3a
Support Iron 0.5 (trivial upgrade)
abonander Feb 22, 2017
e0baf54
WIP move saving stuff to new module
abonander Feb 22, 2017
392456f
WIP changes to save API
abonander Feb 23, 2017
d7d5759
WIP save API
abonander Feb 24, 2017
b1e0f10
WIP save API (almost compiles)
abonander Feb 24, 2017
4b78fe4
WIP saving, just need to update `iron` mod
abonander Feb 25, 2017
2d9eb62
WIP everything compiles now
abonander Feb 25, 2017
7b698cd
Fixup code
abonander Feb 25, 2017
dcbf51a
Add missing documentation, `Debug` impls
abonander Feb 26, 2017
90611bb
Get examples and tests compiling again
abonander Feb 26, 2017
c6e8d53
Set release version
abonander Feb 28, 2017
1e595eb
Docs tweaks
abonander Feb 28, 2017
412a7a0
Merge pull request abonander/multipart#65 from abonander/0.10
abonander Mar 3, 2017
e4ccd84
Check that `Content-Disposition: form-data` for each field
abonander Mar 4, 2017
2a2b00b
Add a way to construct a standalone `mock::ServerRequest`
abonander Mar 4, 2017
9455f6b
Fixup previous change to field.rs
abonander Mar 4, 2017
9286b7f
Preliminary fuzzing support
abonander Mar 4, 2017
cd64c7d
Duh, we already check the `Content-Disposition` header
abonander Mar 4, 2017
40ebdc7
Setup logging in fuzzer
abonander Mar 5, 2017
87c7cd2
Handle zero-sized reads better
abonander Mar 5, 2017
0d7e364
Don't test fuzzing branch on Travis
abonander Mar 5, 2017
0a4b021
Add more logging statements
Mar 5, 2017
3e247e2
Fix another infinite loop
abonander Mar 5, 2017
097ed62
Don't continue find headers loop if buf is empty
abonander Mar 5, 2017
ca2eed5
Put an upper bound on the number of loops in `field::with_headers()`
abonander Mar 5, 2017
927c329
Refactor `field::with_headers()` to not rely on broken lifetimes in `…
abonander Mar 5, 2017
56b187e
Use `set_logger_raw()` in fuzz logger so we don't anger leak-sanitize…
abonander Mar 5, 2017
e66888b
Add fuzzing script, raise logging level
Mar 5, 2017
0516faf
Merge pull request abonander/multipart#68 from abonander/fuzzing
abonander Mar 6, 2017
d1eaaf8
Log buffer when httparse returns an error
abonander Mar 6, 2017
aa615b9
Enable logging in Travis
abonander Mar 6, 2017
f6ea290
Fix compile error
abonander Mar 6, 2017
b1b3572
Log the boundary in server
abonander Mar 6, 2017
9bf5916
Add perpetual test
abonander Mar 6, 2017
102ba41
Add a number of retries to `boundary::fill_buf_min()`
abonander Mar 6, 2017
2a1f7ec
Add extended tests with timeouts (ignored by default)
abonander Mar 6, 2017
d5cb1f7
Add extended tests with timeouts (ignored by default)
abonander Mar 6, 2017
df13bcf
Update Hyper to a version range `>=0.9, <0.11`, reformat Iron's versi…
abonander Mar 10, 2017
8a38dc5
Revert "Update Hyper to a version range `>=0.9, <0.11`, reformat Iron…
abonander Mar 10, 2017
21dd72c
use clippy
Mar 16, 2017
85421db
clippy: `needless_return` lint
Mar 16, 2017
6efe529
clippy: `double_parens` lint
Mar 16, 2017
22462b8
clippy: `let_and_return` lint
Mar 16, 2017
506f038
clippy: `doc_markdown` lint
Mar 16, 2017
1be8356
clippy: `match_same_arms` lint
Mar 16, 2017
befd0c3
clippy: `needless borrow` lint
Mar 16, 2017
28466a7
clippy: `len_zero` lint
Mar 16, 2017
071c2ba
clippy: `if_let_redundant_pattern_matching` lint
Mar 16, 2017
5970f05
clippy: silence `wrong_self_convention` lint
Mar 16, 2017
18cbad6
return an error when failing to parse headers
Mar 16, 2017
f5d4fe5
remove unused `try_io!` macro
Mar 16, 2017
5765d0d
prefer `try!` over `?` for error handling
Mar 16, 2017
66b8822
not finding a header may or may not be an error
Mar 17, 2017
b1d3652
specify which header is not found in error
Mar 17, 2017
26ef517
make ParseHeaderError private
Mar 17, 2017
a544d78
make `ParseHeaderError::Invalid` more specific
Mar 17, 2017
f86b606
clippy: always run with nightly
Mar 17, 2017
cb77ba0
introduce ParseHeaderError::MissingContentDisposition
Mar 17, 2017
40f46ee
Merge pull request abonander/multipart#70 from little-dude/header-error
abonander Mar 17, 2017
92ab0c2
Deprecate in-crate Nickel integration, move it to a separate crate in…
abonander Mar 18, 2017
33f9bce
Add `RUST_BACKTRACE=1` to Travis environment; test `multipart-nickel`
abonander Mar 18, 2017
24b9e08
Fix docs in `multipart-nickel`
abonander Mar 18, 2017
d00c431
Fix Travis config
abonander Mar 18, 2017
ff55f37
Disable nightly branch until Cargo fix hits the trains
abonander Mar 18, 2017
2fa3af0
Also disable builds on OS X for the time being
abonander Mar 18, 2017
fa43ba0
Add deprecation note to `nickel` module and a warning log message in …
abonander Mar 20, 2017
3bb35b4
Lower deprecation log message to `info`
abonander Mar 20, 2017
b73b32b
Keep old `nickel` example and add deprecation note
abonander Mar 20, 2017
3f9aea0
Clarify Nickel integration change in README
abonander Mar 20, 2017
2e16f06
Merge pull request abonander/multipart#72 from abonander/extern-nickel
abonander Mar 21, 2017
114b97f
multipart 0.10.2
abonander Mar 21, 2017
b56b511
Add license key to nickel/Cargo.toml
abonander Mar 21, 2017
b778501
fix build for rust >= 1.12.0
Mar 26, 2017
81abb40
fix tests for rust < 1.15.0
Mar 26, 2017
3aceb1b
replace try! by the question mark operator
Mar 26, 2017
f0c9c47
fix headings in README
chpio Mar 29, 2017
a8c32b4
Merge pull request abonander/multipart#75 from chpio/patch-1
abonander Mar 29, 2017
4c947c5
Merge pull request abonander/multipart#74 from little-dude/use-questi…
abonander Mar 30, 2017
1617160
Bump version, pin minimum Rust at 1.13
abonander Mar 30, 2017
6fb1c79
Upgrade Hyper
abonander Mar 30, 2017
27b4d60
Remove in-crate Nickel support
abonander Mar 30, 2017
9228e75
Merge pull request abonander/multipart#76 from abonander/0.11
abonander Mar 30, 2017
a62f8df
Update multipart-fuzz's Cargo.lock
abonander Mar 31, 2017
2c56b67
Disable logging in fuzzer
abonander Apr 1, 2017
543f591
Fix fuzzing script (cargo-fuzz working directory changed)
abonander Apr 1, 2017
02dfb90
Remove clippy from nightly feature
abonander Apr 1, 2017
e8d4ae4
Bump hyper to 0.10 (#78)
mitsuhiko Apr 18, 2017
0be1c0e
Allow setting fuzz data length by env var
abonander Apr 20, 2017
776364f
Bump `multipart`, `multipart-nickel` versions
abonander Apr 18, 2017
668e93a
Logging macros don't evaluate their arguments if the log level isn't …
abonander Apr 25, 2017
215f857
Cleanup formatting
abonander Apr 25, 2017
a90b1ff
Add basic benchmark
abonander Jun 3, 2017
acbfdc2
lazy::PreparedFields: ditch internal buffering for a simpler implemen…
abonander Jun 4, 2017
794f385
Fix errors after refactor of lazy.rs
abonander Jun 5, 2017
2a68eed
Bump min Rust to 1.14
abonander Jun 5, 2017
dd63b65
Update Cargo versions
abonander Jun 11, 2017
c2739be
Bump minimum Rust version to 1.15 (fixes build)
abonander Jun 11, 2017
c5aac62
Fix headers in doc-comments
abonander Jun 15, 2017
3483c63
Note new minimum Rust version
abonander Jun 15, 2017
621a26a
Link safemem only if `server` feature is enabled
azyobuzin Jun 22, 2017
0d6b2d9
Bump version to 0.13.1
abonander Jun 22, 2017
e521282
Consume multiple \r\n when needed
dariost Aug 5, 2017
e5087f3
server::Multipart: note about `--` prepended to boundary
abonander Jul 27, 2017
ee3a2e5
Modify `iron` and `hyper_client` examples to read out errors
abonander Sep 20, 2017
efaea40
Minor bug fixes
abonander Sep 20, 2017
a7d60a9
Bump minimum supported Rust version
abonander Sep 20, 2017
9d9c778
Bump version
abonander Sep 20, 2017
97262c4
Move `lorem_ipsum.txt` to root
abonander Sep 20, 2017
595219e
Minimum Rust version to 1.17.0
abonander Sep 20, 2017
d42257c
compare header names case-insentively (rfc 822)
little-bobby-tables Sep 22, 2017
fea2740
test header name comparison
little-bobby-tables Sep 23, 2017
364b043
Bump version
abonander Sep 23, 2017
cd75605
change fields container for Entries (#91)
kardeiz Oct 19, 2017
9bc9365
Add test for a field with a trailing CRLF
abonander Nov 26, 2017
24c40b8
clarify `BoundaryReader` possible states as enum, fix cursor backup f…
abonander Nov 26, 2017
07c359d
Bump version for `BoundaryReader` fix
abonander Nov 27, 2017
0438e20
server::Multipart: remove deprecated methods
abonander Jul 26, 2017
3b2e66a
WIP removing text/data distinction in API
abonander Nov 27, 2017
c1a3d2f
WIP refactoring
abonander Dec 4, 2017
b232de4
WIP refactoring (2)
abonander Dec 17, 2017
ac9b84d
WIP complete-ish save API, fixing compiler errors
abonander Dec 19, 2017
e99eb53
finish new `save` API
abonander Dec 25, 2017
f364656
documentation and API tweaks
abonander Dec 25, 2017
7c9628f
Document memory threshold and text policy on `SaveBuilder`
abonander Dec 25, 2017
cddf666
Document memory threshold and text policy on `SaveBuilder`
abonander Dec 25, 2017
4097771
remove testing `multipart-nickel` from Travis
abonander Dec 25, 2017
a3e59a1
fix Hyper server integration
abonander Dec 25, 2017
7cc9d4a
fix Iron integration
abonander Dec 25, 2017
a7e50b1
wip fixing examples
abonander Jan 22, 2018
54f2ab1
wip cargo-check passes
abonander Jan 28, 2018
8305c81
more WIP fixes
abonander Jan 31, 2018
1a22c23
Entries::push_field(): dedup field names by reusing hashmap keys in `…
abonander Feb 1, 2018
dfaf1c0
clarify support for synchronous APIs only
abonander Feb 1, 2018
7639981
fix local_test
abonander Feb 3, 2018
14505e5
fix `hyper_server`, `nickel` examples
abonander Feb 4, 2018
ef82857
tweaks, decouple `nickel` integration from `hyper` integration, make …
abonander Feb 5, 2018
8d47a65
boundary: ditch `fill_buf_min()`, use `buf_redux` strategies
abonander Feb 5, 2018
0e81b4c
acknowledge key dependencies in `README`
abonander Feb 5, 2018
9eb7c8b
note SSE4.2 accelerated impl for `twoway`
abonander Feb 5, 2018
2924a5a
fix typo
abonander Feb 5, 2018
aff6376
fix superscript
abonander Feb 5, 2018
74e5f2a
two lightning bolt emoji are enough
abonander Feb 5, 2018
ae623da
all examples compile, tests failing
abonander Feb 5, 2018
9db7793
powered-by: convert list to h5s
abonander Feb 5, 2018
55b160e
powered-by: convert list to h4s
abonander Feb 5, 2018
b2dbe9a
Update README.md
abonander Feb 5, 2018
ea9ba5d
Add crates.io badges to integrations, alphabetize
abonander Feb 5, 2018
a9c370f
fix notes about Nickel integration
abonander Feb 5, 2018
bfb1111
add `readme` to Cargo.toml
abonander Feb 5, 2018
0533108
fix `local_test`
abonander Feb 5, 2018
758b370
remove `use_arc_str` from the default features
abonander Feb 5, 2018
e92112e
set `multipart=trace` for logs
abonander Feb 5, 2018
ad7653c
add `--test-threads=1` so output is serialized
abonander Feb 5, 2018
f8439ae
fix behavior with buf_redux strategies
abonander Feb 5, 2018
0396d9f
field: improve parse error handling
abonander Feb 6, 2018
952dd9d
fix `BoundaryReader::set_min_buf_size`
abonander Feb 6, 2018
5b4c4df
fix spuriously failing test, improve logging in `local_test` by buffe…
abonander Feb 8, 2018
3cf4a42
improve and document `log_on_panic()`
abonander Feb 9, 2018
e3089e6
improve and document `log_on_panic()` (2)
abonander Feb 9, 2018
dc1eb04
fix typo
abonander Feb 9, 2018
0b68d18
provide an example for Rocket
abonander Feb 13, 2018
b6de30e
fix Rocket example
abonander Feb 13, 2018
04eead3
fix rocket example (2)
abonander Feb 13, 2018
2c008d5
fix Travis testing of Rocket example
abonander Feb 15, 2018
a94ea74
widen Iron to include 0.6, bump to 0.14.2
abonander Mar 1, 2018
4635330
Remove unused uses
oherrala May 11, 2018
a1dc443
Add allow unused_imports and deprecated before import of AsciiExt trait
oherrala May 11, 2018
bd0e9a1
Update dependencies
oherrala May 11, 2018
21b848a
Fix compiler and Clippy nags
oherrala May 11, 2018
4915acf
Bump minimum rust version to 1.22.1 because of dependencies
oherrala May 11, 2018
db09659
Try to enable OS X builds again
oherrala May 11, 2018
2af984b
Merge pull request abonander/multipart#102 from oherrala/fix-nags
abonander Jun 7, 2018
3b61341
try to fix .travis.yml
abonander Jun 7, 2018
e8c48d6
.travis.yml: fix syntax
abonander Jun 7, 2018
bc260ed
Downgrade `mime` to 0.2 to be compatible with Hyper
abonander Jul 6, 2018
fcbc7ef
Merge pull request abonander/multipart#103 from abonander/0.15
abonander Jul 8, 2018
d398232
Crate version 0.15.0
abonander Jul 8, 2018
70e6a28
fix reading of unterminated body
abonander Jul 26, 2018
afb2cf6
version 0.15.1
abonander Jul 26, 2018
513eaa2
copy repro of abonander/multipart#104
abonander Jul 26, 2018
045dadb
drop `PanicLogger`, revert to `env_logger`
abonander Jul 26, 2018
d538078
fix abonander/multipart#104 in server/boundary.rs
abonander Jul 28, 2018
fa1ee4f
Merge pull request abonander/multipart#105 from abonander/issue_104
abonander Jul 30, 2018
581c250
0.15.2: merged abonander/multipart#105
abonander Jul 30, 2018
6d8c9a6
(failing) implement test form, test empty body with only closing boun…
abonander Aug 24, 2018
c8cf949
fix empty body test
abonander Aug 28, 2018
2ac5328
form_test: don't bind to a static port
abonander Aug 28, 2018
9a31910
client: always write closing boundary (matches Chrome's behavior)
abonander Aug 28, 2018
1a6b5c2
0.15.3: client and server, fix handling of empty request bodies (shou…
abonander Aug 28, 2018
714526b
Fix GitHub-Flavoured Markdown
JesseVermeulen123 Oct 15, 2018
72adba4
tack on final \r\n
mzhang28 Nov 20, 2018
22e19c7
Merge pull request abonander/multipart#109 from JesseVermeulen123/pat…
abonander Nov 21, 2018
99bc86c
add repro for #114, some debug asserts to narrow it down
abonander Nov 27, 2018
4b798a5
add fixes and regression tests for abonander/multipart#114
abonander Nov 28, 2018
bc1dd89
Merge pull request abonander/multipart#115 from abonander/issue_114
abonander Nov 29, 2018
052fab4
release patch version
abonander Nov 29, 2018
a24c8c6
bump minimum Rust version
abonander Nov 29, 2018
1c6ca9e
try building on 1.22.1
abonander Nov 29, 2018
6da5d06
don't test these on every release
abonander Nov 30, 2018
c586875
simplify build script
abonander Nov 30, 2018
efee380
turn off `slice-deque` feature of `buf_redux`
abonander Nov 30, 2018
4ac51e0
update `buf_redux`
abonander Nov 30, 2018
923cd30
switch to rocket 0.4
PSeitz Dec 8, 2018
7334e03
Merge pull request abonander/multipart#116 from PSeitz/master
abonander Dec 8, 2018
a85fadd
force lazy_static under 1.2 for 1.22.1 support
FauxFaux Dec 15, 2018
99d73bb
bump rand
FauxFaux Dec 15, 2018
70b6f2c
Merge pull request abonander/multipart#117 from FauxFaux/bump-rand
abonander Jan 11, 2019
a645020
Use lazy_static 1.2.0, remove twoway/pcmp and require rust 1.24.1+
erickt Jan 19, 2019
278ce30
Switch from tempdir to tempfile
erickt Oct 23, 2018
b4d73c5
Merge pull request abonander/multipart#118 from erickt/bump-version
abonander Jan 25, 2019
5b597fe
Merge pull request abonander/multipart#110 from erickt/master
abonander Jan 28, 2019
c5e77a6
drop `sse4`, `use_arc_str` features
abonander Jan 28, 2019
b845082
remove `sse4` note in README
abonander Jan 28, 2019
302dbef
fix lint errors
abonander Jan 28, 2019
33ac1b7
cargo version 0.16.0
abonander Jan 28, 2019
befa851
Merge pull request abonander/multipart#113 from iptq/master
abonander Jan 28, 2019
effbd57
client: add note about trailing CRLF
abonander Jan 28, 2019
e5ab1ae
cargo version 0.16.1
abonander Jan 28, 2019
8bc74ab
upgrade mime & mime_guess
bachue Sep 10, 2019
6dd184e
Merge pull request abonander/multipart#123 from bachue/master
abonander Jun 9, 2020
1ecace6
bump version to 0.17.0
abonander Jun 9, 2020
d3cbaa4
add maintenance note to README
abonander Jun 9, 2020
875b225
Bump rand to 0.7 to address RUSTSEC-2019-0035
realcundo Nov 16, 2020
7958594
Merge pull request abonander/multipart#133 from realcundo/address-RUS…
abonander Jan 9, 2021
58db144
bump patch version
abonander Jan 9, 2021
7f462a4
Update rand to 0.8, bump MSRV
coolreader18 Jan 13, 2021
1bb2da0
bump version to 0.18.0
coolreader18 Jan 13, 2021
964e09d
Update iron URL
atouchet Mar 2, 2021
984ecf6
Merge pull request abonander/multipart#135 from atouchet/iron
abonander Mar 2, 2021
e0c7c0a
Merge pull request abonander/multipart#134 from coolreader18/rand08
abonander May 29, 2021
672b1f1
Merge remote-tracking branch 'origin/multipart-merge-prep' into master
tgross35 Jun 14, 2025
2604a43
Resolve FCWs in multipart
tgross35 Jun 14, 2025
83c16aa
Replace `buf-redux` with `buffer-redux`
tgross35 Jun 14, 2025
3efc2da
Switch to using the local `multipart` in Rouille
tgross35 Jun 14, 2025
3aa39a1
Add `multipart` to the workspace
tgross35 Jun 14, 2025
27514a6
Run `cargo fmt` to update `multipart`
tgross35 Jun 14, 2025
ebb817c
Rename `multipart` to `rouille-multipart`
tgross35 Jun 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ brotli = { version = "3.3.2", optional = true }
chrono = { version = "0.4.19", default-features = false, features = ["clock"] }
filetime = "0.2.0"
deflate = { version = "1.0.0", optional = true, features = ["gzip"] }
multipart = { version = "0.18", default-features = false, features = ["server"] }
rouille-multipart = { version = "0.18", path = "rouille-multipart", default-features = false, features = ["server"] }
percent-encoding = "2"
rand = "0.8"
serde = "1"
Expand All @@ -37,3 +37,6 @@ sha1_smol = "1.0.0"
[dev-dependencies]
postgres = { version = "0.19", default-features = false }
log = "0.4"

[workspace]
members = ["rouille-multipart"]
19 changes: 19 additions & 0 deletions rouille-multipart/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/target
/Cargo.lock
*.swp
*~
# Compiled files
*.o
*.so
*.rlib
*.dll

# Executables
*.exe

# Generated by Cargo
target/
.idea/
*.iml

dump.bin
28 changes: 28 additions & 0 deletions rouille-multipart/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
language: rust
cache: cargo
branches:
except:
- fuzzing
rust:
- 1.33.0
- stable
- beta
- nightly
os:
- linux
- osx
env:
global:
- RUST_LOG=multipart=trace RUST_BACKTRACE=1 ARGS=
matrix:
include:
- rust: stable
env: ARGS+=--no-default-features --features "nickel"
- rust: stable
env: ARGS+=--features "use_arc_str"
- rust: nightly
env: ARGS+=--features "nightly,rocket"
script:
- cargo build --verbose $ARGS;
- cargo test --verbose $ARGS -- --test-threads=1;
- cargo doc --verbose $ARGS;
84 changes: 84 additions & 0 deletions rouille-multipart/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
[package]
name = "rouille-multipart"
version = "0.18.0"
authors = ["Austin Bonander <austin.bonander@gmail.com>"]
description = "A backend-agnostic extension for HTTP libraries that provides support for POST multipart/form-data requests on both client and server."
keywords = ["form-data", "hyper", "iron", "http", "upload"]
repository = "http://github.com/abonander/multipart"
documentation = "http://docs.rs/multipart/"
license = "MIT OR Apache-2.0"
readme = "README.md"
autobins = false
edition = "2021"

[dependencies]
lazy_static = { version = "1.2.0", optional = true }
log = "0.4"
mime = "0.3.14"
mime_guess = "2.0.1"
rand = "0.8"
safemem = { version = "0.3", optional = true }
tempfile = "3"
clippy = { version = ">=0.0, <0.1", optional = true}

#Server Dependencies
buffer-redux = { version = "1.0", optional = true, default-features = false }
httparse = { version = "1.2", optional = true }
twoway = { version = "0.1", optional = true }
quick-error = { version = "1.2", optional = true }

# Optional Integrations
hyper = { version = ">=0.9, <0.11", optional = true, default-features = false }
iron = { version = ">=0.4,<0.7", optional = true }
tiny_http = { version = "0.6", optional = true }
nickel = { version = ">=0.10.1", optional = true }

# Only for Rocket example but dev-dependencies can't be optional
rocket = { version = "0.4", optional = true }

[dev-dependencies]
env_logger = "0.5"

[features]
client = []
default = ["client", "hyper", "iron", "mock", "nickel", "server", "tiny_http"]
server = ["buffer-redux", "httparse", "quick-error", "safemem", "twoway"]
mock = []
nightly = []
bench = []

[[example]]
name = "hyper_client"
required-features = ["client", "mock", "hyper"]

[[example]]
name = "hyper_reqbuilder"
required-features = ["client", "mock", "hyper"]

[[example]]
name = "hyper_server"
required-features = ["mock", "hyper", "server"]

[[example]]
name = "iron"
required-features = ["mock", "iron", "server"]

[[example]]
name = "iron_intercept"
required-features = ["mock", "iron", "server"]

[[example]]
name = "nickel"
required-features = ["mock", "nickel", "server"]

[[example]]
name = "tiny_http"
required-features = ["mock", "tiny_http", "server"]

[[example]]
name = "rocket"
required-features = ["mock", "rocket", "server"]

[[bin]]
name = "form_test"
required-features = ["mock", "hyper", "server"]
22 changes: 22 additions & 0 deletions rouille-multipart/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2014 Austin Bonander

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

201 changes: 201 additions & 0 deletions rouille-multipart/LICENSE-APACHE
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Loading