http/get_simple/matlab/client/client.m (47 lines of code) (raw):

% 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. % The address of the HTTP server that % returns Arrow IPC Stream responses. server = "http://localhost:8008"; % Diagnostic output. disp("Reading Arrow IPC Stream from " + server + "..."); % Start timing. tic; % Make an HTTP GET request to the local server % to fetch an Arrow IPC Stream and read all the % data into memory as a byte (uint8) array. options = weboptions(ContentType="binary"); bytes = webread(server, options); % Construct an Arrow RecordBatchStreamReader from the in-memory bytes. reader = arrow.io.ipc.RecordBatchStreamReader.fromBytes(bytes); % Read an Arrow table from the in-memory bytes. arrowTable = reader.readTable(); % Stop timing. time = toc; % Round elapsed time to two decimal places. time = round(time, 2); % Number of bytes received. nbytes = length(bytes); % Diagnostic output. disp("DONE ✔"); disp("---------------"); disp("Results") disp("---------------"); disp("Time (s): " + sprintf("%.2f", time)); disp("Num Bytes: " + string(nbytes)); disp("Num Rows:" + string(arrowTable.NumRows)); disp("Num Columns:" + string(arrowTable.NumColumns));