@Trev
I took a look at the VBCC doc and saw how the printflike pragma works. I don't think that you can use this method without having to have a format string and then repeating the variable names (i.e. elements in a struct) all over again. Looking at the tpl doc there is a shorthand struct syntax that allows just passing the format string specifying the types to serialize and a pointer to the struct.
BUT: It also says this works by calculating what the padding will have to be for all the elements to be aligned. From what I've read around sometimes through the years this is compiler dependent, what if compiler A aligns to 16 bit and compiler B to 32 bit ?
Worse what happends when you won't want to serialize all elements in a struct, since it's counting on the format string to "guess" the alignment of the elements.
Another weak pointer I found. The user has to make sure types are the same size when exchanging data between apps compiled with different compilers. My library uses sizeof()...
Enouph of my ranting, I'm sure mine has flaws too, but I'm happy to see I have something unique:)
Regarding the closed source thing. I can make a statement in the license compromising to release as source code / allowing someone else to continue it if I decide to stop development, maybe that could make a difference ?
On the make money aspect, yes, true for Amiga, but this is the kind of thing that can be ported to various platforms more or less easily, there's no GUI and the concept/algorithms will be the same. So I could make (or invite some of you guys in here to) ports for Amiga68k, AOS4, MOS, AROS, OpenBeOS, Linux, Windows, MacOS....
Only dragback will be that I've actually made it multithreaded, i.e. serialization actually happends at the same time the stream is sent. This is tested and working(on 68k), it's possible cause I put marks in buffer subsets which are accessed by a semaphore. So implementing this last thing will be platform specific, if I don't decide to make the windows version synchrounous that is..