thrift/lib/erl
Sergei Elin 4576409657 THRIFT-5635 Update erlang client for Erlang 23-25
Client: erl
Patch: Sergey Yelin

This closes #2677

Summary of changes:
 - Add useful compiler options
 - Format sources using erlfmt
 - Switch to modern callbacks in thrift_* modules
 - Add static analysis (dialyzer), disabled by default
 - Add/fix types for API calls

NOTE: Enabling static analysis requires additional tweaks in multiplexer module.
2023-07-22 13:16:08 +02:00
..
include THRIFT-5635 Update erlang client for Erlang 23-25 2023-07-22 13:16:08 +02:00
src THRIFT-5635 Update erlang client for Erlang 23-25 2023-07-22 13:16:08 +02:00
test THRIFT-5635 Update erlang client for Erlang 23-25 2023-07-22 13:16:08 +02:00
coding_standards.md THRIFT-2733 Erlang coding standards 2017-09-07 10:20:17 -07:00
Makefile.am THRIFT-5626 Parser should not confuse data types and field names 2022-09-10 23:17:47 +02:00
README.md THRIFT-3310 lib/erl/README.md has incorrect formatting 2015-09-03 20:53:44 +02:00
rebar.config THRIFT-5635 Update erlang client for Erlang 23-25 2023-07-22 13:16:08 +02:00
rebar.config.script THRIFT-3820 Erlang: Detect OTP >= 18 to use new time correction 2016-07-23 15:12:42 +09:00

Thrift Erlang Software Library

License

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Release Notes

0.9.2

as of 0.9.2 struct and function naming conventions have changed. to retain the old naming conventions (for backwards compatibility) use the compiler option legacynames

Example

Example session using thrift_client:

1> {ok, C0} = thrift_client_util:new("localhost", 9090, thrift_test_thrift, []), ok.
ok
2> {C1, R1} = thrift_client:call(C0, testVoid, []), R1.
{ok,ok}
3> {C2, R2} = thrift_client:call(C1, testVoid, [asdf]), R2.
{error,{bad_args,testVoid,[asdf]}}
4> {C3, R3} = thrift_client:call(C2, testI32, [123]), R3.
{ok,123}
5> {C4, R4} = thrift_client:call(C3, testOneway, [1]), R4.
{ok,ok}
6> {C5, R5} = thrift_client:call(C4, testXception, ["foo"]), R5.
{error,{no_function,testXception}}
7> {C6, R6} = thrift_client:call(C5, testException, ["foo"]), R6.
{ok,ok}
8> {C7, R7} = (catch thrift_client:call(C6, testException, ["Xception"])), R7.
{exception,{xception,1001,<<"Xception">>}}