- βοΈ Add
Stream
andStop
bits to the protocol. - βοΈ Minimum golang version required is
v1.18
- βοΈ Replace
jsoniter
withgoccy/json
- βοΈ Include bad header data in the returned error.
- βοΈ New reusable pool with size classes. More than 50% boost in allocation time.
- βοΈ Better handling
file not found
error.
- π Internal performance improvements (~15% for the RPC).
- π¦ Update Go to
v1.17
- π¦ Update
msgpack
tov5
- βοΈ 50% reduce bound checks in the frame's operations. PR
- π Fix: bug with incorrectly interpreted header len AND operation.
- π Frame now for the internal (but public) operations receive additional
[]byte
slice to skip bound checks.
- π Fix: Duplicated RPC error message: PR
- π Fix: Performance optimization fixes PR
- π Fix: Bug with incorrect proto interface casting which leads to a panic.
- βοΈ Standardise error operations in the whole project.
- βοΈ Remove
frame
tobyte
type aliasing in hot paths.
- βοΈ Add support for the
PROTOBUF
in the RPC.
- Move relay interface to the pkg folder.
- Separate CI into Linux, MacOS, Windows and Linters.
- Correct README.md (Installation and sample)
- Add PR template.
- Add dependabot.
- New protocol (pkg/frame/frame.md)
- Various payloads support: msgpack, raw bytes, JSON, gob.
- New repo architecture.
- Shared memory [alfa].
- Remove RawMessage check for the payload (@wolfy-j)
- golang version in go.mod bumped to 1.15
- Add phpstan analyzer
- Fix code warnings from phpstan
- Improve Relay factory and SocketRelay
- Improve test coverage
- Performance improvements
- See the full milestone here: link
- More tests for PHP (@vvval)
- Upgrade PHP version to the 7.2 (currently minimum supported)
- Add new RelayInterface link ( @vvval)
- See the full milestone here: link
- Syscall usage optimized. Now the data is packing and sending via 1 (or 2 in some cases) send_socket calls, instead of 2-3 (by @vvval)
- Unix sockets supported on windows (AF_UNIX) starting from OS Build 17056.
- Add the ability to define own relay with a codec (by @Reasno)
- Replace std encoding/json package with the https://github.com/json-iterator/go
- Add BORS and GHA support
- golang modules updated to v2
- Fixed too strict StreamRelay check by @tarampampam
- Update travis to support go 1.13
- Update tests (errors handling, simplify)
- Add go modules support
- Optimize pack function
by @ValeryPiashchynski
- minor performance improvements by @zloyuser
- removed nighly from travis
- improved performance (reduced number of syscalls required for Send command)
- added 8 more bytes to the payload
- added error detection mechanism over binary masks
- added panic handler for pipe relay
- added golang ClientCodec implementation
- additional error detections
- added sequence support
- more tests
- handled possible panic on reading from broken connection in socket relay
- minor performance improvement in memory allocation for buffer by @243083df
- fixed unix socket support on MacOS by @bgetsug
- typo in SOCK_TPC constant
- support sending empty string payloads without PAYLOAD_NONE flag
- ext-sockets is not required anymore
- Connection renamed to Relay
- JsonRPC renamed to RPC
- Performance optimizations (+20% speed improvement)
- Added relay over standard streams and pipes
- Added ability to invoke PHP from Go
- Added control headers to manage execution flow
- CLOSE_CONNECTION and KEEP_CONNECTION constants are removed
- *_BODY constants renamed to PAYLOAD_* to comply with .go code
- Protocol is extracted from Codec as independent abstraction
- Simplified RPC Codec implementation
- Code is formatted to comply to Golint
- More tests
- More documentation
- More error checks in PHP code
- License holder moved from Spiral Framework to SpiralScout
- library dependency downgraded to support PHP7.0 by @thePanz
- service level exception for invalid json payloads
- public Goridge release