encoding_c is an FFI wrapper for encoding_rs.
Please see the file named COPYRIGHT.
No Unwinding Support!
This crate is meant for use in binaries compiled with
panic = 'abort', which
is required for correctness! Unwinding across FFI is Undefined Behavior, and
this crate does nothing to try to prevent unwinding across the FFI if
compliled with unwinding enabled.
include/encoding_rs_statics.h are needed for C
include/encoding_rs_cpp.h is a sample C++ API built on top of the C API using
GSL and the C++ standard library. Since C++ project typically roll their own
string classes, etc., it's probably necessary for C++ projects to manually
adapt the header to their replacements of standard-library types.
There's a write-up about the C++ wrappers.
- Pass through new feature flags introduced in encoding_rs 0.8.11.
- Update to encoding_rs 0.8.0.
- Update to encoding_rs 0.7.0.
- Deal correctly with the
ENCODING_RS_NOT_NULL_CONST_ENCODING_PTR. (Not a breaking change, because defining that macro broke the build previously, so the macro couldn't have been used.)
- Use the macro only for statics and not for return values.
- Annotate the encoding pointers that should be wrapped with a
same-representation not-null type in C++ as
- Use C preprocessor definitions for encoding constant declarations.
- Parametrize the struct type names behind C preprocessor definitions.
- Leave it to the user to provide
char16_t. Avoid including a header for it.
- Fix documentation for pointers that get used in
SIZE_MAXin the max length calculation functions.
- Check in the
cheddar-generated header and comment out the
- Initial release of encoding_c. (I.e. first release with FFI in a distinct crate.)