[Taps] Framing Protocol APIs in iOS and macOS

Tommy Pauly <tpauly@apple.com> Fri, 07 June 2019 20:38 UTC

Return-Path: <tpauly@apple.com>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 39ADE120140 for <taps@ietfa.amsl.com>; Fri, 7 Jun 2019 13:38:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.011
X-Spam-Level:
X-Spam-Status: No, score=-2.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7D85YJo1DwxD for <taps@ietfa.amsl.com>; Fri, 7 Jun 2019 13:38:26 -0700 (PDT)
Received: from nwk-aaemail-lapp03.apple.com (nwk-aaemail-lapp03.apple.com [17.151.62.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 72498120018 for <taps@ietf.org>; Fri, 7 Jun 2019 13:38:26 -0700 (PDT)
Received: from pps.filterd (nwk-aaemail-lapp03.apple.com [127.0.0.1]) by nwk-aaemail-lapp03.apple.com (8.16.0.27/8.16.0.27) with SMTP id x57KVk1F015393 for <taps@ietf.org>; Fri, 7 Jun 2019 13:38:26 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=mime-version : content-transfer-encoding : content-type : sender : from : subject : message-id : date : to; s=20180706; bh=m08TAEmc8nlmQS1irKULHe+9swBFCh91pXBiWhMjN7g=; b=XOw0d/cscteKerNoFOsCVHRAL+I0IoMz78+w057TkEU1qjZ5TAj2vpdNtfjZo6s/L/Fe /huYbDxGSspcK2FjCug8wN6Dy7W+HEpubIsu5qeFAdmuKOM52V0kl1nQjwAAtzwrLX0r 4OpsOrCzm7YUxbds3viRZI0eVFx/ssKBERe57KglzztHN/opF/bcO78Y5A1aw4aK0AvC OKJtsICoa/uYWlLgD6xUM1urqFFTJ2meSi4aKsiVxq0xbtiNpQ2oXXwJDyrOpoY8jL07 usf60pseGheIJIb8nw4vKr0Qzu1PY9ZnFA9CKXz9FkcYvVsihEKpvQUso55r75NcY6UE zw==
Received: from ma1-mtap-s01.corp.apple.com (ma1-mtap-s01.corp.apple.com [17.40.76.5]) by nwk-aaemail-lapp03.apple.com with ESMTP id 2sxgvr583q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for <taps@ietf.org>; Fri, 07 Jun 2019 13:38:26 -0700
MIME-version: 1.0
Content-transfer-encoding: 7bit
Content-type: text/plain; CHARSET="US-ASCII"
Received: from nwk-mmpp-sz13.apple.com (nwk-mmpp-sz13.apple.com [17.128.115.216]) by ma1-mtap-s01.corp.apple.com (Oracle Communications Messaging Server 8.0.2.4.20190507 64bit (built May 7 2019)) with ESMTPS id <0PSQ00JXOXC1VL60@ma1-mtap-s01.corp.apple.com> for taps@ietf.org; Fri, 07 Jun 2019 13:38:25 -0700 (PDT)
Received: from process_milters-daemon.nwk-mmpp-sz13.apple.com by nwk-mmpp-sz13.apple.com (Oracle Communications Messaging Server 8.0.2.4.20190507 64bit (built May 7 2019)) id <0PSQ00D00X6WOH00@nwk-mmpp-sz13.apple.com> for taps@ietf.org; Fri, 07 Jun 2019 13:38:25 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 2ae3cb41e2a452a17e83043029b284de
X-Va-E-CD: 3a45dede71d17ebc85ebdf2e3a121d00
X-Va-R-CD: ee144e4d204fb36241495e996222a04f
X-Va-CD: 0
X-Va-ID: 4dff30c0-ff88-4465-b7d5-c78f6e00ef04
X-V-A:
X-V-T-CD: 2ae3cb41e2a452a17e83043029b284de
X-V-E-CD: 3a45dede71d17ebc85ebdf2e3a121d00
X-V-R-CD: ee144e4d204fb36241495e996222a04f
X-V-CD: 0
X-V-ID: 19e33505-14f1-4d4e-be4f-122ced77cc3c
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-06-07_11:,, signatures=0
Received: from [17.234.84.148] by nwk-mmpp-sz13.apple.com (Oracle Communications Messaging Server 8.0.2.4.20190507 64bit (built May 7 2019)) with ESMTPSA id <0PSQ00I8UXC0ZVC0@nwk-mmpp-sz13.apple.com> for taps@ietf.org; Fri, 07 Jun 2019 13:38:25 -0700 (PDT)
Sender: tpauly@apple.com
From: Tommy Pauly <tpauly@apple.com>
Message-id: <07BEBA15-B435-4F2E-A9DE-89EE54C13986@apple.com>
Date: Fri, 07 Jun 2019 13:38:14 -0700
To: taps WG <taps@ietf.org>
X-Mailer: Apple Mail (2.3445.104.2)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-06-07_11:, , signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/kYFOIXqPzq34LltCIC3sfbSW_uU>
Subject: [Taps] Framing Protocol APIs in iOS and macOS
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jun 2019 20:38:28 -0000

Hello TAPS,

I wanted to share some new API that we've just released in beta as part of Network.framework that's based on the framer work for the TAPS API!

You can now create framing protocols that you insert into your connections and listeners to parse messages over streams; if anyone wants to see how framers look in Swift, please take a look at the presentation and resources we've shared this week:

Presentation from WWDC: https://developer.apple.com/videos/play/wwdc2019/713/
Documentation: https://developer.apple.com/documentation/network/nwprotocolframerimplementation
Sample Swift Code: https://developer.apple.com/documentation/network/building_a_custom_peer-to-peer_protocol

We've also done a lot of work updating the documentation for Network.framework, so it should be a little easier to look over the API now.

Best,
Tommy