Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
781a7cc
chore: release new version
May 10, 2025
ce286dc
Merge remote-tracking branch 'upstream/master'
May 14, 2025
dae7deb
merge
May 28, 2025
9fe3c55
Merge remote-tracking branch 'upstream/master'
Jul 15, 2025
2a76e93
Merge remote-tracking branch 'upstream/master'
Jul 31, 2025
3af0153
Merge remote-tracking branch 'upstream/master'
sleipnir Sep 9, 2025
4feee64
Merge remote-tracking branch 'upstream/master'
sleipnir Sep 11, 2025
c83632e
initial client lb implementation
sleipnir Sep 11, 2025
c050706
chore: added tests and better interfaces
sleipnir Sep 11, 2025
5587cda
Update lib/grpc/client/resolver.ex
sleipnir Sep 11, 2025
0da6da4
chore: add lb
sleipnir Sep 11, 2025
815121a
Merge branch 'feat/grpc-lb' of https://github.com/sleipnir/grpc into …
sleipnir Sep 11, 2025
e3e0f24
chore: adjustments in behaviors & create Conn module
sleipnir Sep 12, 2025
9192dab
chore: simplifying the test
sleipnir Sep 15, 2025
1c3887c
chore: adjust in tests
sleipnir Sep 15, 2025
0d09fb6
feat: make lb work
sleipnir Sep 15, 2025
6761963
refact: remove deprecated feature
sleipnir Sep 15, 2025
4d64962
fix: return all the arities of the connect function
sleipnir Sep 15, 2025
6d8f667
chore: added deprecated
sleipnir Sep 15, 2025
1de3d4d
update benchmark
sleipnir Sep 15, 2025
10728ae
interop tests
sleipnir Sep 15, 2025
c6f5d2e
fix: parallel execution
sleipnir Sep 22, 2025
c0b6e94
fix: correct stop
sleipnir Sep 22, 2025
16a55db
chore: correct refresh logic
sleipnir Sep 22, 2025
5f385ec
chore: added some documentation
sleipnir Sep 22, 2025
c89da0f
Update lib/grpc/client/load_balacing/round_robin.ex
sleipnir Sep 26, 2025
88882c4
Update lib/grpc/client/load_balacing/round_robin.ex
sleipnir Sep 26, 2025
e4eee2d
accept string
sleipnir Sep 26, 2025
0594fa6
Merge branch 'feat/grpc-lb' of https://github.com/sleipnir/grpc into …
sleipnir Sep 26, 2025
148dcfa
use string
sleipnir Sep 26, 2025
3f81a71
Update lib/grpc/client/resolver/ipv4.ex
sleipnir Sep 26, 2025
12cf52f
Update lib/grpc/client/resolver/ipv6.ex
sleipnir Sep 26, 2025
b300c88
refactor: more readable code
sleipnir Sep 26, 2025
1b6427e
fix: correct code and fix tests
sleipnir Sep 26, 2025
f989823
Update lib/grpc/client/conn.ex
sleipnir Sep 26, 2025
18f316e
Update lib/grpc/client/conn.ex
sleipnir Sep 26, 2025
9c0d685
refactor: rename and minor adjustments
sleipnir Sep 26, 2025
7d36b3b
Merge branch 'feat/grpc-lb' of https://github.com/sleipnir/grpc into …
sleipnir Sep 26, 2025
a83930e
ref: rename Conn to Connection
sleipnir Sep 26, 2025
9f87397
ref: Adjusts in function declaration order
sleipnir Sep 26, 2025
c2f9860
Update lib/grpc/client/connection.ex
sleipnir Sep 26, 2025
9006f06
Update lib/grpc/client/connection.ex
sleipnir Sep 26, 2025
3c5de96
Update lib/grpc/client/connection.ex
sleipnir Sep 26, 2025
46fad67
fix: translate to english
sleipnir Sep 26, 2025
46c80c5
Merge branch 'feat/grpc-lb' of https://github.com/sleipnir/grpc into …
sleipnir Sep 26, 2025
e4f85b6
accept indeterminism
sleipnir Sep 26, 2025
96ba172
fix: pid is always pid
sleipnir Sep 26, 2025
a73d9ee
fix: correct references
sleipnir Sep 26, 2025
fefb49a
remove warning
sleipnir Sep 26, 2025
baa98e8
feat: added client supervisor
sleipnir Sep 26, 2025
42c9e9e
Merge branch 'master' into feat/grpc-lb
sleipnir Sep 26, 2025
b43b3bd
fix: charlist errors
sleipnir Oct 4, 2025
2a505b7
Merge branch 'feat/grpc-lb' of https://github.com/sleipnir/grpc into …
sleipnir Oct 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions benchmark/lib/grpc/core/stats.pb.ex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
defmodule Grpc.Core.Bucket do
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these changes intentional?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this was already like this, I don't know when or why these files were originally created.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean the downgrade in the version. It seems that when you re-generated you used 14.0 instead of 14.1

@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :start, 1, type: :double
field :count, 2, type: :uint64
Expand All @@ -10,15 +10,15 @@ end
defmodule Grpc.Core.Histogram do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :buckets, 1, repeated: true, type: Grpc.Core.Bucket
end

defmodule Grpc.Core.Metric do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

oneof :value, 0

Expand All @@ -30,7 +30,7 @@ end
defmodule Grpc.Core.Stats do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :metrics, 1, repeated: true, type: Grpc.Core.Metric
end
20 changes: 20 additions & 0 deletions benchmark/lib/grpc/testing/benchmark_service.pb.ex
Original file line number Diff line number Diff line change
@@ -1 +1,21 @@
defmodule Grpc.Testing.BenchmarkService.Service do
@moduledoc false

use GRPC.Service, name: "grpc.testing.BenchmarkService", protoc_gen_elixir_version: "0.14.0"

rpc :UnaryCall, Grpc.Testing.SimpleRequest, Grpc.Testing.SimpleResponse

rpc :StreamingCall, stream(Grpc.Testing.SimpleRequest), stream(Grpc.Testing.SimpleResponse)

rpc :StreamingFromClient, stream(Grpc.Testing.SimpleRequest), Grpc.Testing.SimpleResponse

rpc :StreamingFromServer, Grpc.Testing.SimpleRequest, stream(Grpc.Testing.SimpleResponse)

rpc :StreamingBothWays, stream(Grpc.Testing.SimpleRequest), stream(Grpc.Testing.SimpleResponse)
end

defmodule Grpc.Testing.BenchmarkService.Stub do
@moduledoc false

use GRPC.Stub, service: Grpc.Testing.BenchmarkService.Service
end
44 changes: 22 additions & 22 deletions benchmark/lib/grpc/testing/control.pb.ex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
defmodule Grpc.Testing.ClientType do
@moduledoc false

use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :SYNC_CLIENT, 0
field :ASYNC_CLIENT, 1
Expand All @@ -11,7 +11,7 @@ end
defmodule Grpc.Testing.ServerType do
@moduledoc false

use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :SYNC_SERVER, 0
field :ASYNC_SERVER, 1
Expand All @@ -22,7 +22,7 @@ end
defmodule Grpc.Testing.RpcType do
@moduledoc false

use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :UNARY, 0
field :STREAMING, 1
Expand All @@ -34,21 +34,21 @@ end
defmodule Grpc.Testing.PoissonParams do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :offered_load, 1, type: :double, json_name: "offeredLoad"
end

defmodule Grpc.Testing.ClosedLoopParams do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3
end

defmodule Grpc.Testing.LoadParams do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

oneof :load, 0

Expand All @@ -59,7 +59,7 @@ end
defmodule Grpc.Testing.SecurityParams do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :use_test_ca, 1, type: :bool, json_name: "useTestCa"
field :server_host_override, 2, type: :string, json_name: "serverHostOverride"
Expand All @@ -69,7 +69,7 @@ end
defmodule Grpc.Testing.ChannelArg do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

oneof :value, 0

Expand All @@ -81,7 +81,7 @@ end
defmodule Grpc.Testing.ClientConfig do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :server_targets, 1, repeated: true, type: :string, json_name: "serverTargets"
field :client_type, 2, type: Grpc.Testing.ClientType, json_name: "clientType", enum: true
Expand All @@ -105,23 +105,23 @@ end
defmodule Grpc.Testing.ClientStatus do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :stats, 1, type: Grpc.Testing.ClientStats
end

defmodule Grpc.Testing.Mark do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :reset, 1, type: :bool
end

defmodule Grpc.Testing.ClientArgs do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

oneof :argtype, 0

Expand All @@ -132,7 +132,7 @@ end
defmodule Grpc.Testing.ServerConfig do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :server_type, 1, type: Grpc.Testing.ServerType, json_name: "serverType", enum: true
field :security_params, 2, type: Grpc.Testing.SecurityParams, json_name: "securityParams"
Expand All @@ -154,7 +154,7 @@ end
defmodule Grpc.Testing.ServerArgs do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

oneof :argtype, 0

Expand All @@ -165,7 +165,7 @@ end
defmodule Grpc.Testing.ServerStatus do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :stats, 1, type: Grpc.Testing.ServerStats
field :port, 2, type: :int32
Expand All @@ -175,27 +175,27 @@ end
defmodule Grpc.Testing.CoreRequest do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3
end

defmodule Grpc.Testing.CoreResponse do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :cores, 1, type: :int32
end

defmodule Grpc.Testing.Void do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3
end

defmodule Grpc.Testing.Scenario do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :name, 1, type: :string
field :client_config, 2, type: Grpc.Testing.ClientConfig, json_name: "clientConfig"
Expand All @@ -210,15 +210,15 @@ end
defmodule Grpc.Testing.Scenarios do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :scenarios, 1, repeated: true, type: Grpc.Testing.Scenario
end

defmodule Grpc.Testing.ScenarioResultSummary do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :qps, 1, type: :double
field :qps_per_server_core, 2, type: :double, json_name: "qpsPerServerCore"
Expand Down Expand Up @@ -247,7 +247,7 @@ end
defmodule Grpc.Testing.ScenarioResult do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :scenario, 1, type: Grpc.Testing.Scenario
field :latencies, 2, type: Grpc.Testing.HistogramData
Expand Down
26 changes: 13 additions & 13 deletions benchmark/lib/grpc/testing/messages.pb.ex
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
defmodule Grpc.Testing.PayloadType do
@moduledoc false

use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, enum: true, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :COMPRESSABLE, 0
end

defmodule Grpc.Testing.BoolValue do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :value, 1, type: :bool
end

defmodule Grpc.Testing.Payload do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :type, 1, type: Grpc.Testing.PayloadType, enum: true
field :body, 2, type: :bytes
Expand All @@ -26,7 +26,7 @@ end
defmodule Grpc.Testing.EchoStatus do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :code, 1, type: :int32
field :message, 2, type: :string
Expand All @@ -35,7 +35,7 @@ end
defmodule Grpc.Testing.SimpleRequest do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :response_type, 1, type: Grpc.Testing.PayloadType, json_name: "responseType", enum: true
field :response_size, 2, type: :int32, json_name: "responseSize"
Expand All @@ -50,7 +50,7 @@ end
defmodule Grpc.Testing.SimpleResponse do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :payload, 1, type: Grpc.Testing.Payload
field :username, 2, type: :string
Expand All @@ -60,7 +60,7 @@ end
defmodule Grpc.Testing.StreamingInputCallRequest do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :payload, 1, type: Grpc.Testing.Payload
field :expect_compressed, 2, type: Grpc.Testing.BoolValue, json_name: "expectCompressed"
Expand All @@ -69,15 +69,15 @@ end
defmodule Grpc.Testing.StreamingInputCallResponse do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :aggregated_payload_size, 1, type: :int32, json_name: "aggregatedPayloadSize"
end

defmodule Grpc.Testing.ResponseParameters do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :size, 1, type: :int32
field :interval_us, 2, type: :int32, json_name: "intervalUs"
Expand All @@ -87,7 +87,7 @@ end
defmodule Grpc.Testing.StreamingOutputCallRequest do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :response_type, 1, type: Grpc.Testing.PayloadType, json_name: "responseType", enum: true

Expand All @@ -103,23 +103,23 @@ end
defmodule Grpc.Testing.StreamingOutputCallResponse do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :payload, 1, type: Grpc.Testing.Payload
end

defmodule Grpc.Testing.ReconnectParams do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :max_reconnect_backoff_ms, 1, type: :int32, json_name: "maxReconnectBackoffMs"
end

defmodule Grpc.Testing.ReconnectInfo do
@moduledoc false

use Protobuf, protoc_gen_elixir_version: "0.14.1", syntax: :proto3
use Protobuf, protoc_gen_elixir_version: "0.14.0", syntax: :proto3

field :passed, 1, type: :bool
field :backoff_ms, 2, repeated: true, type: :int32, json_name: "backoffMs"
Expand Down
Loading