anchor-cereal
For some reason, Anchor doesn't let you create weird-sized arrays in #[account]-derived structs. This crate fixes that by providing a macro that generates a serializable struct with an array of any size, that actually shows up in your IDL.
Usage
use *;
...
// Define a struct to wrap your array - it must:
// - derive Clone, AnchorSerializeArray, and AnchorDeserializeArray
// - contain a single field named `value`, which is an array.
// You can then use your struct in accounts...
...
// ...and instructions.