Alex Rembish
Slightly Retarded Senior Python Zombie Evangelist
AR, Oct'19
Sklik
AR
It was hopefully warn Tuesday, 19th of July, 2007. Miroslav Talasek at 15:02:55 CET commited the very first code to the newborn project FastRPC
The very first commit: https://github.com/seznam/fastrpc/tree/2a854b9d544b819e6c5f76d8d0248dafbab84426
The very first commit: https://github.com/seznam/fastrpc/tree/2a854b9d544b819e6c5f76d8d0248dafbab84426
Better the very first commit: https://sourceforge.net/p/fastrpc/code/1/tree/
Actual the very first commit:
rsync -av rsync://a.cvs.sourceforge.net/cvsroot/fastrpc/\* \
fastrpc
Every non-data type represents complex data structure returned by the server or sent by the client. Data always start with magic ("CALL" in hex) and protocol version (major/minor octet pair)
xCA | 0x11 | versionMajor | versionMinor |
---|
Client must send Accept header as well:
Accept: application/x-frpc
Every non-data type represents complex data structure returned by the server or sent by the client. Data always start with magic ("CALL" in hex) and protocol version (major/minor octet pair)
xCA | 0x11 | versionMajor | versionMinor |
---|
Client must send Accept header as well:
Accept: application/x-frpc
... or this one:
Accept: application/x-base64-frpc
Every non-data type represents complex data structure returned by the server or sent by the client. Data always start with magic ("CALL" in hex) and protocol version (major/minor octet pair)
xCA | 0x11 | versionMajor | versionMinor |
---|
Client must send Accept header as well:
Accept: application/x-frpc
... or this one:
Accept: application/x-base64-frpc
... or even this one:
Accept: application/json
Version 1.0:
Data types: Integer, Double, Boolean, String, Binary, Struct, Array, Datetime
Data size information: 4 octets
Version 2.0:
New data types: Positive/Negative Integer8
Data size information: 8 octets
Version 2.1:
New data types: Null
Version 3.0:
Never exists
Version 3.1:
Unsigned long long numbers, Datetime remastered?
Maybe something else, but no documentation at all
1.0.13 is the very first version you can download: https://web.archive.org/web/20070219141100/http://sourceforge.net/project/showfiles.php?group_id=142835
1.1.1 (27.03.2006) is the very first version you can found in VCS
2.0.2 (01.06.2007) something happened, so major was raised. No changelog, only chaotic commit messages
3.0.0? (14.11.2008) date when probably first v3 was released
3.2.8 (30.03.2011) the last version you can download from SourceForge: https://sourceforge.net/projects/fastrpc/files/fastrpc%20library/3.2.8/
4.0.0 (19.04.2011) something happened and we have v4. No changelog, guys
4.2.0 (30.04.2011) the last version in Subversion
<4.2.1 (21.08.2012) Subversion support dropped, project probably migrated to Github
<4.2.1 (30.04.2011) Changelog file created!
4.2.8 (25.10.2012) The very first tagged version... without changelog description
5.x (06.09.2012 - 30.06.2015!) Unix socket support, multithreading support
6.x (03.02.2016 - 04.02.2016) X-Forwarded-For support
8.x (02.06.2016 - now) Custom headers support, protocol 3.1... Changelog still looks like a shit
7.x (09.02.2016 - 03.05.2016) Trying to fix what v6 broke
More than 40 contributers
Internal GitLab: 41 projects (approx. 15 forks included)
CML: 6 projects
GitHub: approx. 10 projects (and more than 20 projects with same name)
Internal Debian: 64 packages (no packages in official repos)
PyPi: 5 packages
Internal PyPi: 12 packages
npm: 1 package
Mavel: 5 packages (same mvnrepository.com and maven.dev)
GoCenter: 1 package
PHP: 1 package
More than 20 internal projects are obsolete or deprecated
There is no (un)official library which implements all of them
You can download libfastrpc v3!
Python 2.2 examples included!
We definitely have to stop creating new and new reimplementation
Or, better, completely drop usage of our multifaceted and contradictory library
By Alex Rembish