diff --git a/OWNERS b/OWNERS
index cd07772..8b5e198 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,7 +1,6 @@
 # Early global approvers
 #
-# This has no enforcement at the moment but if you are looking for a reviewer
-# of your CL any of these people are good candidates.
+# If you are looking for a reviewer of your CL any of these people are good candidates.
 
 jamuraa@google.com
 dayeonglee@google.com
diff --git a/rust/AUTHORS b/rust/AUTHORS
new file mode 100644
index 0000000..bc49c98
--- /dev/null
+++ b/rust/AUTHORS
@@ -0,0 +1,9 @@
+# This is the list of authors.
+# NOTE: Before adding any more authors to this file, consult jamuraa@google.com
+# Names should be added to this file as one of
+#     Organization's name
+#     Individual's name <submission email address>
+#     Individual's name <submission email address> <email2> <emailN>
+
+Google Inc.
+The Fuchsia Authors
diff --git a/rust/CONTRIBUTING.md b/rust/CONTRIBUTING.md
new file mode 100644
index 0000000..3abac10
--- /dev/null
+++ b/rust/CONTRIBUTING.md
@@ -0,0 +1,25 @@
+# Contributing
+
+Fuchsia lets anyone contribute to the project, regardless of their employer.
+The project reviews and encourages well-tested, high-quality contributions
+from anyone who wants to contribute.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement (CLA).
+
+To see any Contributor License Agreements on file or to sign a CLA, go to <https://cla.developers.google.com/>.
+
+For more information about the Google CLA, see [Contributor License Agreements](https://cla.developers.google.com/about).
+
+## Contributing changes and submitting code reviews
+
+All changes require review, including changes by project members.
+
+## Community guidelines
+
+This project observes the following community guidelines:
+  * [Google's Open Source Community Guidelines](https://opensource.google/conduct/)
+  * [Fuchsia's Code of Conduct](https://fuchsia.dev/docs/CODE_OF_CONDUCT.md)
+
diff --git a/rust/LICENSE b/rust/LICENSE
index e5de3c8..585d374 100644
--- a/rust/LICENSE
+++ b/rust/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2023 Google LLC
+Copyright 2023 The Fuchsia Authors. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
diff --git a/rust/bt-bass/src/client.rs b/rust/bt-bass/src/client.rs
index 398b24e..959e913 100644
--- a/rust/bt-bass/src/client.rs
+++ b/rust/bt-bass/src/client.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -23,12 +23,13 @@
 const READ_CHARACTERISTIC_BUFFER_SIZE: usize = 255;
 
 /// Keeps track of Source_ID and Broadcast_ID that are associated together.
-/// Source_ID is assigned by the BASS server to a Broadcast Receive State characteristic.
-/// If the remote peer with the BASS server autonomously synchronized to a PA
-/// or accepted the Add Source operation, the server selects an empty Broadcast
-/// Receive State characteristic to update or deletes one of the existing one to update.
-/// However, because the concept of Source_ID is unqiue to BASS, we track the Broadcast_ID
-/// that a Source_ID is associated so that it can be used by upper layers.
+/// Source_ID is assigned by the BASS server to a Broadcast Receive State
+/// characteristic. If the remote peer with the BASS server autonomously
+/// synchronized to a PA or accepted the Add Source operation, the server
+/// selects an empty Broadcast Receive State characteristic to update or deletes
+/// one of the existing one to update. However, because the concept of Source_ID
+/// is unqiue to BASS, we track the Broadcast_ID that a Source_ID is associated
+/// so that it can be used by upper layers.
 #[derive(Default)]
 pub struct BroadcastSourceIdTracker {
     source_to_broadcast: HashMap<SourceId, BroadcastId>,
@@ -39,8 +40,8 @@
         Self::default()
     }
 
-    /// Updates the broadcast ID associated with the given source ID and returns the
-    /// previously-associated broadcast ID if it exists.
+    /// Updates the broadcast ID associated with the given source ID and returns
+    /// the previously-associated broadcast ID if it exists.
     fn update(&mut self, source_id: SourceId, broadcast_id: BroadcastId) -> Option<BroadcastId> {
         self.source_to_broadcast.insert(source_id, broadcast_id)
     }
@@ -57,13 +58,15 @@
 pub struct BroadcastAudioScanServiceClient<T: bt_gatt::GattTypes> {
     gatt_client: Box<T::PeerService>,
     id_tracker: Arc<Mutex<BroadcastSourceIdTracker>>,
-    /// Broadcast Audio Scan Service only has one Broadcast Audio Scan Control Point characteristic
-    /// according to BASS Section 3. There shall
+    /// Broadcast Audio Scan Service only has one Broadcast Audio Scan Control
+    /// Point characteristic according to BASS Section 3. There shall
     /// be one or more Broadcast Receive State characteristics.
     audio_scan_control_point: Handle,
-    /// Broadcast Receive State characteristics can be used to determine the BASS status.
+    /// Broadcast Receive State characteristics can be used to determine the
+    /// BASS status.
     receive_states: Arc<Mutex<HashMap<Handle, Option<BroadcastReceiveState>>>>,
-    /// Keeps track of the broadcast codes that were sent to the remote BASS server.
+    /// Keeps track of the broadcast codes that were sent to the remote BASS
+    /// server.
     broadcast_codes: HashMap<SourceId, [u8; 16]>,
     // GATT notification streams for BRS characteristic value changes.
     notification_streams: Option<
@@ -76,7 +79,8 @@
     where
         <T as bt_gatt::GattTypes>::NotificationStream: std::marker::Send,
     {
-        // BASS server should have a single Broadcast Audio Scan Control Point Characteristic.
+        // BASS server should have a single Broadcast Audio Scan Control Point
+        // Characteristic.
         let bascp =
             ServiceCharacteristic::<T>::find(&gatt_client, BROADCAST_AUDIO_SCAN_CONTROL_POINT_UUID)
                 .await
@@ -113,7 +117,8 @@
     }
 
     // Discover all the Broadcast Receive State characteristics.
-    // On success, returns the HashMap of all Broadcast Received State Characteristics.
+    // On success, returns the HashMap of all Broadcast Received State
+    // Characteristics.
     async fn discover_brs_characteristics(
         gatt_client: &T::PeerService,
     ) -> Result<HashMap<Handle, Option<BroadcastReceiveState>>, Error> {
@@ -162,9 +167,10 @@
         self.notification_streams = Some(notification_streams);
     }
 
-    /// Returns a stream that can be used by the upper layer to poll for BroadcastAudioScanServiceEvent.
-    /// BroadcastAudioScanServiceEvents are generated based on BRS characteristic change received from GATT notification that
-    /// are processed by BroadcastAudioScanServiceClient.
+    /// Returns a stream that can be used by the upper layer to poll for
+    /// BroadcastAudioScanServiceEvent. BroadcastAudioScanServiceEvents are
+    /// generated based on BRS characteristic change received from GATT
+    /// notification that are processed by BroadcastAudioScanServiceClient.
     /// This method should only be called once.
     /// Returns an error if the method is called for a second time.
     pub fn take_event_stream(&mut self) -> Option<BroadcastAudioScanServiceEventStream> {
@@ -231,8 +237,8 @@
 
     fn setup_client() -> (BroadcastAudioScanServiceClient<FakeTypes>, FakePeerService) {
         let mut fake_peer_service = FakePeerService::new();
-        // Add 3 Broadcast Receive State Characteristics, 1 Broadcast Audio Scan Control Point Characteristic,
-        // and 1 random one.
+        // Add 3 Broadcast Receive State Characteristics, 1 Broadcast Audio Scan Control
+        // Point Characteristic, and 1 random one.
         fake_peer_service.add_characteristic(
             Characteristic {
                 handle: RECEIVE_STATE_1_HANDLE,
@@ -420,7 +426,8 @@
         let (mut client, mut fake_peer_service) = setup_client();
         let mut event_stream = client.take_event_stream().expect("stream was created");
 
-        // Send notification for updating BRS characteristic to indicate it's synced and requires broadcast code.
+        // Send notification for updating BRS characteristic to indicate it's synced and
+        // requires broadcast code.
         #[rustfmt::skip]
         fake_peer_service.add_characteristic(
             Characteristic {
@@ -456,8 +463,9 @@
             BroadcastAudioScanServiceEvent::BroadcastCodeRequired(BroadcastId::new(0x040302))
         );
 
-        // Send notification for updating BRS characteristic to indicate it requires sync info.
-        // Notification for updating the BRS characteristic value for characteristic with handle 3.
+        // Send notification for updating BRS characteristic to indicate it requires
+        // sync info. Notification for updating the BRS characteristic value for
+        // characteristic with handle 3.
         #[rustfmt::skip]
         fake_peer_service.add_characteristic(
             Characteristic {
@@ -526,7 +534,8 @@
             pin_mut!(set_code_fut);
             let polled = set_code_fut.poll_unpin(&mut noop_cx);
 
-            // Should fail because we cannot get source id for the broadcast id since BRS Characteristic value wasn't updated.
+            // Should fail because we cannot get source id for the broadcast id since BRS
+            // Characteristic value wasn't updated.
             let Poll::Ready(Err(_)) = polled else {
                 panic!("Expected to fail");
             };
diff --git a/rust/bt-bass/src/client/error.rs b/rust/bt-bass/src/client/error.rs
index 113d15f..635a87c 100644
--- a/rust/bt-bass/src/client/error.rs
+++ b/rust/bt-bass/src/client/error.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -41,7 +41,9 @@
     #[error("More than one Broadcast Audio Scan Control Point characteristics")]
     ExtraScanControlPointCharacteristic,
 
-    #[error("Failed to configure notification for Broadcast Recieve State characteristic (handle={0:?})")]
+    #[error(
+        "Failed to configure notification for Broadcast Recieve State characteristic (handle={0:?})"
+    )]
     NotificationConfig(Handle),
 
     #[error("Broadcast Receive State notification channels closed unexpectedly: {0}")]
diff --git a/rust/bt-bass/src/client/event.rs b/rust/bt-bass/src/client/event.rs
index 8fae56f..b7a5275 100644
--- a/rust/bt-bass/src/client/event.rs
+++ b/rust/bt-bass/src/client/event.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -191,7 +191,8 @@
             Some(item) => match item {
                 Ok(event) => Poll::Ready(Some(Ok(event))),
                 Err(e) => {
-                    // If an error was received, we terminate the event stream, but send an error to indicate why it was terminated.
+                    // If an error was received, we terminate the event stream, but send an error to
+                    // indicate why it was terminated.
                     self.terminated = true;
                     Poll::Ready(Some(Err(e)))
                 }
diff --git a/rust/bt-bass/src/lib.rs b/rust/bt-bass/src/lib.rs
index b97638d..0d619cd 100644
--- a/rust/bt-bass/src/lib.rs
+++ b/rust/bt-bass/src/lib.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-bass/src/types.rs b/rust/bt-bass/src/types.rs
index 842b7be..efb5e60 100644
--- a/rust/bt-bass/src/types.rs
+++ b/rust/bt-bass/src/types.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/company_id.rs b/rust/bt-common/src/company_id.rs
index 811ef2a..9c1d91f 100644
--- a/rust/bt-common/src/company_id.rs
+++ b/rust/bt-common/src/company_id.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/core.rs b/rust/bt-common/src/core.rs
index f7d8c7b..c7efbca 100644
--- a/rust/bt-common/src/core.rs
+++ b/rust/bt-common/src/core.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/core/ltv.rs b/rust/bt-common/src/core/ltv.rs
index 5baab7d..7c71085 100644
--- a/rust/bt-common/src/core/ltv.rs
+++ b/rust/bt-common/src/core/ltv.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/generic_audio.rs b/rust/bt-common/src/generic_audio.rs
index f6e33dd..cfbcbd3 100644
--- a/rust/bt-common/src/generic_audio.rs
+++ b/rust/bt-common/src/generic_audio.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/generic_audio/codec_capabilities.rs b/rust/bt-common/src/generic_audio/codec_capabilities.rs
index eeff6cd..a5c23a5 100644
--- a/rust/bt-common/src/generic_audio/codec_capabilities.rs
+++ b/rust/bt-common/src/generic_audio/codec_capabilities.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/generic_audio/metadata_ltv.rs b/rust/bt-common/src/generic_audio/metadata_ltv.rs
index 8056537..5e95215 100644
--- a/rust/bt-common/src/generic_audio/metadata_ltv.rs
+++ b/rust/bt-common/src/generic_audio/metadata_ltv.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/lib.rs b/rust/bt-common/src/lib.rs
index 73c7763..2956e3e 100644
--- a/rust/bt-common/src/lib.rs
+++ b/rust/bt-common/src/lib.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/packet_encoding.rs b/rust/bt-common/src/packet_encoding.rs
index 8778fb2..2516dcb 100644
--- a/rust/bt-common/src/packet_encoding.rs
+++ b/rust/bt-common/src/packet_encoding.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/uuids.rs b/rust/bt-common/src/uuids.rs
index f640805..ef8e3eb 100644
--- a/rust/bt-common/src/uuids.rs
+++ b/rust/bt-common/src/uuids.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-common/src/uuids/characteristic_uuids.rs b/rust/bt-common/src/uuids/characteristic_uuids.rs
index d45ead2..d42c0db 100644
--- a/rust/bt-common/src/uuids/characteristic_uuids.rs
+++ b/rust/bt-common/src/uuids/characteristic_uuids.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -6,6 +6,7 @@
 
 use super::{AssignedUuid, Uuid};
 
+#[rustfmt::skip]
 // Generated with a magic regexp: %s/ - uuid: \(......\)\n   name: \(.\+\)\n   id: \(.\+\)\n/(\1, "\2", "\3"),\r/g
 // With a tweak for "CO2 Concentration"
 
diff --git a/rust/bt-common/src/uuids/descriptors.rs b/rust/bt-common/src/uuids/descriptors.rs
index fc07a56..ec9adad 100644
--- a/rust/bt-common/src/uuids/descriptors.rs
+++ b/rust/bt-common/src/uuids/descriptors.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -6,6 +6,7 @@
 
 use super::{AssignedUuid, Uuid};
 
+#[rustfmt::skip]
 // Generated with a magic regexp: %s/ - uuid: \(......\)\n   name: \(.\+\)\n   id: \(.\+\)\n/(\1, "\2", "\3"),\r/g
 // With a tweak for "CO2 Concentration"
 
@@ -32,4 +33,3 @@
           (0x2911, "Valid Range and Accuracy", "org.bluetooth.descriptor.valid_range_accuracy"),
     );
 }
-
diff --git a/rust/bt-common/src/uuids/service_class.rs b/rust/bt-common/src/uuids/service_class.rs
index 49ee5eb..bb0a335 100644
--- a/rust/bt-common/src/uuids/service_class.rs
+++ b/rust/bt-common/src/uuids/service_class.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -6,6 +6,7 @@
 
 use super::{AssignedUuid, Uuid};
 
+#[rustfmt::skip]
 // Generated with a magic regexp: %s/ - uuid: \(......\)\n   name: \(.\+\)\n   id: \(.\+\)\n/(\1, "\2", "\3"),\r/g
 
 #[rustfmt::skip]
diff --git a/rust/bt-common/src/uuids/service_uuids.rs b/rust/bt-common/src/uuids/service_uuids.rs
index f80f10e..dcd0282 100644
--- a/rust/bt-common/src/uuids/service_uuids.rs
+++ b/rust/bt-common/src/uuids/service_uuids.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -6,6 +6,7 @@
 
 use super::{AssignedUuid, Uuid};
 
+#[rustfmt::skip]
 // Generated with a magic regexp: %s/ - uuid: \(......\)\n   name: \(.\+\)\n   id: \(.\+\)\n/(\1, "\2", "\3"),\r/g
 
 #[rustfmt::skip]
diff --git a/rust/bt-gatt/src/central.rs b/rust/bt-gatt/src/central.rs
index 7e4abcf..5ca7712 100644
--- a/rust/bt-gatt/src/central.rs
+++ b/rust/bt-gatt/src/central.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-gatt/src/client.rs b/rust/bt-gatt/src/client.rs
index 3684f9d..0a573b0 100644
--- a/rust/bt-gatt/src/client.rs
+++ b/rust/bt-gatt/src/client.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-gatt/src/test_utils.rs b/rust/bt-gatt/src/test_utils.rs
index 3a78bde..4908e98 100644
--- a/rust/bt-gatt/src/test_utils.rs
+++ b/rust/bt-gatt/src/test_utils.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -56,7 +56,8 @@
         }
     }
 
-    // Sets expected characteristic value so that it can be used for validation when write method is called.
+    // Sets expected characteristic value so that it can be used for validation when
+    // write method is called.
     pub fn expect_characteristic_value(&mut self, handle: &Handle, value: Vec<u8>) {
         let mut lock = self.inner.lock();
         let Some(char) = lock.characteristics.get_mut(handle) else {
@@ -97,7 +98,8 @@
         ready(Ok((value.len(), false)))
     }
 
-    /// For testing, should call `expect_characteristic_value` with the expected value.
+    /// For testing, should call `expect_characteristic_value` with the expected
+    /// value.
     fn write_characteristic<'a>(
         &self,
         handle: &Handle,
diff --git a/rust/bt-gatt/src/tests.rs b/rust/bt-gatt/src/tests.rs
index 2593b2f..d300f0f 100644
--- a/rust/bt-gatt/src/tests.rs
+++ b/rust/bt-gatt/src/tests.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-gatt/src/types.rs b/rust/bt-gatt/src/types.rs
index 85c7a0a..84dae8a 100644
--- a/rust/bt-gatt/src/types.rs
+++ b/rust/bt-gatt/src/types.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
diff --git a/rust/bt-pacs/src/lib.rs b/rust/bt-pacs/src/lib.rs
index 72e9ecf..7a62d42 100644
--- a/rust/bt-pacs/src/lib.rs
+++ b/rust/bt-pacs/src/lib.rs
@@ -1,4 +1,4 @@
-// Copyright 2023 Google LLC
+// Copyright 2023 The Fuchsia Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
