
Auto Network Lib is an automatic network packet serialization library.
Features:
- Automatic serialization and deserialization of fields in a network packet
- Automatic packet handling in main thread
- Built in serializers of most common data types
- You can add your own serializer for a type that is not supported by default
- Can serialize generic lists
- Can serialize generic sets
- Can serialize generic maps
- Can serialize java arrays
- Can serialize generic collection inside generic collection
- Can serialize any Enum
- Optimized for perfomance
Description
When writing network code modders need to manually serialize and deserialize all fields in a packet. This library can do it automatically so that you don't have to write boiler plate code. You only need to declare fields in a packet. Networking code in Minecraft is running in a separate thread from main game thread and because of this before doing anything you need to schedule task in main thread and handle everything in there. This library automatically schedules task in main thread. Out of the box this library supports serialization for following data types: int, long, float, double, boolean, Integer, Long, Float, Double, Boolean, String, NBTTagCompound, ItemStack, char, byte, short, Character, Byte, Short, BlockPos, Vec3d, Color3f This library can automatically serialize following generic java collections: List<T>, ArrayList<T>, Stack<T>, Vector<T>, LinkedList<T>, Set<T>, HashSet<T>, Map<T,K>, HashMap<T,K> This library can automatically serialize arrays of any type but currently only one dimensional arrays supported. This library can automatically serialize supported generic collections inside of other supported generic collections. For example it can serialize following data types: HashMap<Integer, List<Integer>>, List<List<List<String>>>, HashMap<List<String>, List<Integer>> Optimized for perfomance. Reflection is used only once on first serialization of packet after that no reflection is needed. Also it uses method handles instead of reflection to read and write data which is faster then access via reflection.