Commit Graph

19 Commits

Author SHA1 Message Date
Ralf Jung c061be06e7 CI: run test suite in Miri (#456) 2020-12-29 22:54:48 +01:00
Tomasz Miąsko 1e82681d16 Use ThreadSanitizer CI setup that avoids false positives (#406) 2020-07-07 01:28:47 +09:00
Taiki Endo 0218965db5 Migrate CI to GitHub Actions (#392) 2020-05-25 01:41:45 +09:00
Taiki Endo 9a2e275ae3 Format with rustfmt (#389)
* Format with rustfmt

* Add rustfmt check to CI
2020-05-22 13:17:30 +09:00
Taiki Endo ce1d504c17 Fix CI failure on MacOS (#388)
macOS-10.13 has been removed.
2020-05-22 10:54:52 +09:00
Sean McArthur f840d6d773 Change loom tests to use cfg(loom) internally (#314) 2019-11-13 14:55:25 -08:00
Sean McArthur c3f9cf1d72 Refactor Bytes to use an internal vtable (#298)
Bytes is a useful tool for managing multiple slices into the same region
of memory, and the other things it used to have been removed to reduce
complexity. The exact strategy for managing the multiple references is
no longer hard-coded, but instead backing by a customizable vtable.

- Removed ability to mutate the underlying memory from the `Bytes` type.
- Removed the "inline" (SBO) mechanism in `Bytes`. The reduces a large
  amount of complexity, and improves performance when accessing the
  slice of bytes, since a branch is no longer needed to check if the
  data is inline.
- Removed `Bytes` knowledge of `BytesMut` (`BytesMut` may grow that
  knowledge back at a future point.)
2019-10-16 09:53:36 -07:00
Taiki Endo 1af1de3e56 Fix build fail with serde feature (#293)
Verify no-std build and all features build
2019-09-08 22:10:46 +02:00
Taiki Endo 7ee37ca25c Remove a patch for cross 2019-09-08 17:58:32 +02:00
Chris Beck 79359b1526 Add no_std support, by adding an std feature (#281)
To make the library work as `no_std` we add an `std` feature which
is on by default. When it is off, we compile as `no_std` and make
parts of the API that require `std::io` conditional on the `std`
feature.
2019-09-05 14:00:23 -07:00
Douman d5a18356a0 Remove IntoBuf/FromBuf (#288)
As consequence Buf::collect is removed as well, which is replaced with `Buf::into_bytes`. The advantage of `Buf::into_bytes` is that it can be optimized in cases where converting a `T: Buf` into a `Bytes` instance is efficient.
2019-08-27 13:09:43 -07:00
Carl Lerche a485ab1a2f Set up CI with Azure Pipelines (#275) 2019-07-30 10:29:00 -07:00
Carl Lerche c34a9f5083 Whitelist false positive std (#234) 2018-11-17 07:27:00 -08:00
Carl Lerche af6d2b0eaf White list allocation (#226) 2018-09-03 13:36:13 -07:00
Sean McArthur 1f03ad7fd3 Optimize Inner::shallow_clone (#217)
- Clones when the kind is INLINE or STATIC are sped up by over double.
- Clones when the kind is ARC are spec up by about 1/3.
2018-07-03 15:21:26 -07:00
Carl Lerche 31c18918e9 Filter out tsan warnings in test harness (#205) 2018-05-25 15:54:13 -07:00
Carl Lerche 40ebcd1cfe Use sanitizers in CI (#204) 2018-05-25 12:40:37 -07:00
Arthur Silva b196559818 Add serde support behind serde feature (#96) 2017-05-02 10:51:52 -07:00
Carl Lerche cf5a1bc4f1 Rewrite Bytes / BytesMut core implementation
The previous implementation didn't factor in a single `Bytes` handle
being stored in an `Arc`. This new implementation correctly impelments
both `Bytes` and `BytesMut` such that both are `Sync`.

The rewrite also increases the number of bytes that can be stored
inline.
2017-02-20 10:41:20 -08:00