Connect with us

FACEBOOK

Meet the Rustaceans: Eric Kuecks

Published

on

This article was written in collaboration with Eric Kuecks, a Production Engineer at Facebook.

For today’s interview, we have Eric Kuecks who is a Production Engineer on the Core Data Staging team at Facebook. The Core Data Staging team works on integration testing for the cache and database stack at Facebook. While working on this team, Eric has been using Rust as one of the main languages for development. Most of his work these days centers around preventing site outages by enabling more extensive testing of our systems. Let’s hear from him about how his experience with Rust has been and learn more about his work.


In what capacity have you been using Rust?

While working on my current team, I’ve transitioned to using Rust on a predominantly Python code base for some of our command line interfaces and servers and am now starting a new team where we hope to use Rust extensively. While on my previous team, I also wrote some Python extensions in Rust in order to incorporate it into an existing Python code base as well as wrote new services in Rust.

Why did your team at Facebook choose to use Rust over other languages?

We were coming from Python and not having a compiler was a huge pain. We had a lot of runtime bugs that could have otherwise been easily caught by any compiled language. We also faced performance issues since Python was pretty slow, especially since multithreading doesn’t help CPU-bound work due to the limitations posed by the GIL (Global Interpreter lock). We wanted a compiled language that could interop with Python, since it’s much easier to incrementally replace our stack than start from scratch, which left us with either C++ or Rust.

I think it is much easier to go from nothing to correct code in Rust than it is C++. I would argue this is true even if you “know” C++ as well, since it has so many footguns with undefined behavior. Rust on the other hand, has no undefined behavior (outside of unsafe code). This made Rust a clear winner from a practical standpoint. Rust language features like traits and enums were a nice bonus on top since they are way better than what C++ can offer. From there I decided to use it for other projects outside of Python extensions as well, since it’s just a really good language.

Advertisement
free widgets for website

What are some of the projects that you’ve worked on at Facebook that use Rust?

I have worked on the server to handle deploying TAO (The Associations and Objects), a social graph cache at Facebook. TAO is the main way the front end code accesses the social graph data. This involved integration with Conveyor, our continuous deployment system, several libraries with Python bindings to be used by tools, a library with CXX bindings to be used by C++ and a few small CLI tools.

See also  Dear Facebook, you're really not helping yourself | Digital | Campaign Asia

How do you feel about Rust’s growth trajectory at Facebook?

I’m super happy with the support the language gets from a few very dedicated people. I have seen it take off a lot among production engineers and would like to see more software engineers use it, especially those who currently use C++.

What value does Facebook add to Rust?

We have some fantastic Rust developers here at Facebook who work on amazing open source projects. An example would be CXX, which is very useful and drastically improves the experience for developers using Rust. We have also recently published rust-shed, which contains Rust crates that are common between Facebook open source projects. We are also looking forward to having a lot of opportunities to contribute to the rustc compiler.

How do you think Rust is growing as a language in 2021?

A lot of big companies are hiring for Rust work which I think will cause a lot of others to follow. I think Rust is starting to transition from being viewed as a niche language for enthusiasts to a serious language that should be considered for almost any project.

Some people who have used Rust have come to really like it. Why do you think that is and what is your favorite feature about Rust?

There is a lot to love about Rust, but I think people will like different aspects of it depending on what language they are coming from. I was coming from a background of writing Facebook Python which is “compiled” with Buck but does not have the full benefits of a real compiler. Rust’s amazing compiler certainly stands out as an exceptional feature to me. It’s incredible how often my code is completely correct once it compiles. A close second are Rust sum type enums (tagged unions) which I always miss when I use another language.

Advertisement
free widgets for website

Where can people learn more about Rust and how can they start contributing to it?

The Book-Rust Programming Language is a great resource to start learning Rust. For contributing, check out the Rust zulip server and you can also browse the issues in the rust github repo.


See also  Introducing Facebook Platform SDK V12.0 & Related Updates

We would like to thank Eric, for taking the time to do this interview. It was very interesting to learn how Rust is being used as a primary language for integration testing and how we are learning from all the things we build here and contributing back to the Rust community. We hope you found this interview useful and it gave you some insight into how and where Rust is being used at Facebook. Look out for more interview blogs where we meet with other engineers and hear their thoughts on this topic.

Check out our previous blogs from the Meet the Rustaceans series:
Meet the Rustaceans: Chris Konstad
Meet the Rustaceans: Pedro Rittner
Meet the Rustaceans: Neil Mitchell
Meet the Rustaceans: Daniel Xu

About the Meet the Rustaceans series

Rust has consistently been ranked as the “most loved” language for the last 5 years and we at Facebook believe that Rust is an outstanding language that shines in critical issues such as memory safety, performance and reliability and is being used widely over a large range of projects here. We joined the Rust Foundation to help contribute towards the improvement and growth of Rust, which not only strengthens our commitment towards the Rust language but also towards a sustainable development of open source technologies and developer communities across the world.

This blog is a part of our Meet the Rustaceans series, where we invite the engineers and developers who use Rust on a regular basis to share their experiences and tell us about the amazing products that they are building using Rust here at Facebook. Look out for more interview blogs where we meet with many more engineers and hear their thoughts on this topic.

Advertisement
free widgets for website

To learn more about Facebook Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter and Facebook.

See also  2 killed in Facebook Marketplace meet-up, police say

Interested in working in Production Engineering at Facebook? Check out our job postings on our Production Engineering career page here.

Facebook Developers

Continue Reading
Advertisement free widgets for website

FACEBOOK

Introducing Facebook Graph API v18.0 and Marketing API v18.0

Published

on

By

introducing-facebook-graph-api-v180-and-marketing-api-v18.0

Today, we are releasing Facebook Graph API v18.0 and Marketing API v18.0. As part of this release, we are highlighting changes below that we believe are relevant to parts of our developer community. These changes include announcements, product updates, and notifications on deprecations that we believe are relevant to your application(s)’ integration with our platform.

For a complete list of all changes and their details, please visit our changelog.

General Updates

Consolidation of Audience Location Status Options for Location Targeting

As previously announced in May 2023, we have consolidated Audience Location Status to our current default option of “People living in or recently in this location” when choosing the type of audience to reach within their Location Targeting selections. This update reflects a consolidation of other previously available options and removal of our “People traveling in this location” option.

We are making this change as part of our ongoing efforts to deliver more value to businesses, simplify our ads system, and streamline our targeting options in order to increase performance efficiency and remove options that have low usage.

This update will apply to new or duplicated campaigns. Existing campaigns created prior to launch will not be entered in this new experience unless they are in draft mode or duplicated.

Advertisement
free widgets for website

Add “add_security_recommendation” and “code_expiration_minutes” to WA Message Templates API

Earlier this year, we released WhatsApp’s authentication solution which enabled creating and sending authentication templates with native buttons and preset authentication messages. With the release of Graph API v18, we’re making improvements to the retrieval of authentication templates, making the end-to-end authentication template process easier for BSPs and businesses.

With Graph API v18, BSPs and businesses can have better visibility into preset authentication message template content after creation. Specifically, payloads will return preset content configuration options, in addition to the text used by WhatsApp. This improvement can enable BSPs and businesses to build “edit” UIs for authentication templates that can be constructed on top of the API.

See also  How to change language on Facebook - Mashable

Note that errors may occur when upgrading to Graph API v18 if BSPs or businesses are taking the entire response from the GET request and providing it back to the POST request to update templates. To resolve, the body/header/footer text fields should be dropped before passing back into the API.

Re-launching dev docs and changelogs for creating Call Ads

  • Facebook Reels Placement for Call Ads

    Meta is releasing the ability to deliver Call Ads through the Facebook Reels platform. Call ads allow users to call businesses in the moment of consideration when they view an ad, and help businesses drive more complex discussions with interested users. This is an opportunity for businesses to advertise with call ads based on peoples’ real-time behavior on Facebook. Under the Ad set Level within Ads Manager, businesses can choose to add “Facebook Reels” Under the Placements section.
  • Re-Launching Call Ads via API

    On September 12, 2023, we’re providing updated guidance on how to create Call Ads via the API. We are introducing documentation solely for Call Ads, so that 3P developers can more easily create Call Ads’ campaigns and know how to view insights about their ongoing call ad campaigns, including call-related metrics. In the future, we also plan to support Call Add-ons via our API platform. Developers should have access to the general permissions necessary to create general ads in order to create Call Ads via the API platform.

    Please refer to developer documentation for additional information.

Deprecations & Breaking Changes

Graph API changes for user granular permission feature

We are updating two graph API endpoints for WhatsAppBusinessAccount. These endpoints are as follows:

  • Retrieve message templates associated with WhatsAppBusiness Account
  • Retrieve phone numbers associated with WhatsAppBusiness Account

With v18, we are rolling out a new feature “user granular permission”. All existing users who are already added to WhatsAppBusinessAccount will be backfilled and will continue to have access (no impact).

The admin has the flexibility to change these permissions. If the admin changes the permission and removes access to view message templates or phone numbers for one of their users, that specific user will start getting an error message saying you do not have permission to view message templates or phone numbers on all versions v18 and older.

Advertisement
free widgets for website

Deprecate legacy metrics naming for IG Media and User Insights

Starting on September 12, Instagram will remove duplicative and legacy, insights metrics from the Instagram Graph API in order to share a single source of metrics to our developers.

This new upgrade reduces any confusion as well as increases the reliability and quality of our reporting.

After 90 days of this launch (i.e. December 11, 2023), we will remove all these duplicative and legacy insights metrics from the Instagram Graph API on all versions in order to be more consistent with the Instagram app.

We appreciate all the feedback that we’ve received from our developer community, and look forward to continuing to work together.

Please review the media insights and user insights developer documentation to learn more.

Advertisement
free widgets for website

Deprecate all Facebook Wi-Fi v1 and Facebook Wi-Fi v2 endpoints

Facebook Wi-Fi was designed to improve the experience of connecting to Wi-Fi hotspots at businesses. It allowed a merchant’s customers to get free Wi-Fi simply by checking in on Facebook. It also allowed merchants to control who could use their Wi-Fi and for how long, and integrated with ads to enable targeting to customers who had used the merchant’s Wi-Fi. This product was deprecated on June 12, 2023. As the partner notice period has ended, all endpoints used by Facebook Wi-Fi v1 and Facebook Wi-Fi v2 have been deprecated and removed.

API Version Deprecations:

As part of Facebook’s versioning schedule for Graph API and Marketing API, please note the upcoming deprecations:

Graph API

  • September 14, 2023: Graph API v11.0 will be deprecated and removed from the platform
  • February 8, 2024: Graph API v12.0 will be deprecated and removed from the platform
  • May 28, 2024: Graph API v13.0 will be deprecated and removed from the platform

Marketing API

  • September 20, 2023: Marketing API v14.0 will be deprecated and removed from the platform
  • September 20, 2023: Marketing API v15.0 will be deprecated and removed from the platform
  • February 06, 2024: Marketing API v16.0 will be deprecated and removed from the platform

To avoid disruption to your business, we recommend migrating all calls to the latest API version that launched today.

Facebook Platform SDK

As part of our 2-year deprecation schedule for Platform SDKs, please note the upcoming deprecations and sunsets:

  • October 2023: Facebook Platform SDK v11.0 or below will be sunset
  • February 2024: Facebook Platform SDK v12.0 or below will be sunset

First seen at developers.facebook.com

See also  2 killed in Facebook Marketplace meet-up, police say
Continue Reading

FACEBOOK

Allowing Users to Promote Stories as Ads (via Marketing API)

Published

on

By

allowing-users-to-promote-stories-as-ads-(via-marketing-api)

Before today (August 28, 2023), advertisers could not promote images and/or videos used in Instagram Stories as ads via the Instagram Marketing API. This process created unwanted friction for our partners and their customers.

After consistently hearing about this pain point from our developer community, we have removed this unwanted friction for advertisers and now allow users to seamlessly promote their image and/or video media used in Instagram Stories as ads via the Instagram Marketing API as of August 28, 2023.

We appreciate all the feedback received from our developer community, and hope to continue improving your experience.

Please review the developer documentation to learn more.

First seen at developers.facebook.com

Advertisement
free widgets for website
See also  Introducing Facebook Platform SDK V12.0 & Related Updates
Continue Reading

FACEBOOK

Launching second release of Facebook Reels API: An enterprise solution for desktop and web publishers

Published

on

By

launching-second-release-of-facebook-reels-api:-an-enterprise-solution-for-desktop-and-web-publishers

We’re excited to announce that the second release of FB Reels API is now publicly available for third-party developers. FB Reels API enables users of third-party platforms to share Reels directly to public Facebook Pages and the New Pages Experience.

FB Reels API has grown significantly since the first release in September 2022. The new version of the APIs now support custom thumbnails, automatic music tagging, tagging collaborators, longer format of reels and better error handling.

FB Reels API will also support scheduling and draft capability to allow creators to take advantage of tools provided either by Meta or by our partners. Based on the feedback we received from our partners, we’ll now provide additional audio insights via the Audio Recommendations API and reels performance metrics via the Insights API.

Our goal in the next couple of releases is to continue to make it easier for creators to develop quality content by adding features like early copyright detection and A/B testing. We’re also excited to start working on enhanced creation features like Video clipping- so stay tuned to hear more about those features in the future.

Call-to-Action

If you are a developer interested in integrating with the Facebook Reels API, please refer to the Developer Documents for more info.

Advertisement
free widgets for website

Not sure if this product is for you? Check out our entire suite of sharing offerings.

Tune in to Product @scale event to learn more about FB Video APIs and hear from some of our customers.

First seen at developers.facebook.com

See also  Introducing Facebook Platform SDK V12.0 & Related Updates
Continue Reading

Trending