All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for the
google.protobuf.Value
message
- Support for the
google.protobuf.Struct
message
- Moved this entire project over to Github
- Bumped the version in order to not confuse older stuff that doesn't expect
protoplasm to exist in Pypi.org (if we end up migriting this there and
just open-sourcing the whole thing)
- Also in case something changes in the API while migrating, cause I tend to fiddle with the code and tidy up and refactor when moving stuff
- Docker image building of the latest stable version of Protoplasm and all
its dependencies to this project for both Alpine and Debian and Python
versions 3.8-3.12
- Thus, checking in and publishing a new stable version of Protoplasm should trigger new Docker base images with Protoplasm and all the gRPC binaries up-to-date and ready to be used by other projects (speeding up their testing and building considerably)
- ...at least in the old CI/CD environment... We'll see what's what once this is all in Github and Github Actions
- A ton of CI/CD stuff that's irrelevant now that we've moved to Github
Fixed ANOTHER bug in type hint importing
- Now importing
List
andDict
with nested dots work (e.g.List[foo.Bar]
)
Fixed bug in type hint importing
- Now importing
List
andDict
works (was onlytyping.List
andtyping.Dict
before)
- Added the
ResponseIterator
which remote method calls with stream output now return as a wrapper around the previously returned iterable results. - Added
TimeoutResponseIterator
which wraps the newResponseIterator
with timeout functionality while waiting for response stream iterations. ResponseIterator
has awith_timeout()
method which automatically wraps it in aTimeoutResponseIterator
- Both
ResponseIterator
andTimeoutResponseIterator
have aone_and_done()
method which waits for one next response stream iteration and then closes the stream. RequestIterator
can now take in alist
ortuple
asinitial_request
to load up multiple initial requests.- Added
close()
method toRequestIterator
to close the request stream (force a cancel event) - Added
unpack()
toDataclassBase
Major update that unifies the API and functionality of versions 2 and 3.
Skipping a bunch of versions and checkins between 3.0 and 4.0 cause they're not really important at the moment (it's 2024 and I'm migrating this from our internal Gitlab repo to Github).
- Unify the unary functionality of Protoplasm 2 with the streaming
functionality of Protoplasm 3
- The two turn out to be completely incompatible and API shattering
Protoplasm 4 must incorporate BOTH functionalities wile being backwards
compatible enough for both Protoplasm 2 and 3 projects to be able to
migrate to 4
-The key here is detecting the
stream
keyword in protos that denote streaming input and/or output
- The two turn out to be completely incompatible and API shattering
Protoplasm 4 must incorporate BOTH functionalities wile being backwards
compatible enough for both Protoplasm 2 and 3 projects to be able to
migrate to 4
-The key here is detecting the
- Add piled up functionality/utility/QoL improvements/bugs that's been on The
List™ for a while
- Cast to/from base64 encoded strings
- Utilize the
__all__
directive to isolateimport *
side effects - Integrate the Neobuf Builder CLI (from various other projects) into Protoplasm and generalize it
- Address the "
None
is default value" issue - Explore the pros/cons of making non-existing Message/Object attributes
return
Empty
orEmptyDict
to simplify nested attribute fetching...?
- Refactor and restructure the package properly
- Separate the 4 main roles of the package logically
- Cross-piling
*.proto
to*_pb2.py
and*_pb2_grpc.py
- Cross-piling
*_pb2.py
to*_dc.py
Neobuf Dataclasses - Generating
*_api.py
interfaces - Generating gRPC implementation of Services
- Cross-piling
- Separate the 4 main roles of the package logically
Major update including support for gRPC streams.
Skipping a bunch of versions and checkins between 2.0 and 3.0 cause they're not really important at the moment (it's 2024 and I'm migrating this from our internal Gitlab repo to Github).
- Support for gRPC streams
- This broke backwards compatibility with version 1 and 2's non-streaming gRPC calls
Major update including support for secure channels.
Skipping a bunch of versions and checkins between 1.0 and 2.0 cause they're not really important at the moment (it's 2024 and I'm migrating this from our internal Gitlab repo to Github).
- Support for Secure gRPC channels
Initial stable release.
Skipping a bunch of versions and checkins between 0.1 and 1.0 cause they're not really important at the moment (it's 2024 and I'm migrating this from our internal Gitlab repo to Github).
- A bunch of features
- The initial checkin of this project