Release 0.1.0
diff --git a/src/cxx_string.rs b/src/cxx_string.rs
index c169797..40a1731 100644
--- a/src/cxx_string.rs
+++ b/src/cxx_string.rs
@@ -4,9 +4,9 @@
 use std::str::{self, Utf8Error};
 
 extern "C" {
-    #[link_name = "cxxbridge00$cxx_string$data"]
+    #[link_name = "cxxbridge01$cxx_string$data"]
     fn string_data(_: &CxxString) -> *const u8;
-    #[link_name = "cxxbridge00$cxx_string$length"]
+    #[link_name = "cxxbridge01$cxx_string$length"]
     fn string_length(_: &CxxString) -> usize;
 }
 
diff --git a/src/cxxbridge.cc b/src/cxxbridge.cc
index 3d1a902..a502d20 100644
--- a/src/cxxbridge.cc
+++ b/src/cxxbridge.cc
@@ -3,48 +3,48 @@
 #include <memory>
 #include <stdexcept>
 
-namespace cxxbridge = cxxbridge00;
+namespace cxxbridge = cxxbridge01;
 
 extern "C" {
-const char *cxxbridge00$cxx_string$data(const std::string &s) noexcept {
+const char *cxxbridge01$cxx_string$data(const std::string &s) noexcept {
   return s.data();
 }
 
-size_t cxxbridge00$cxx_string$length(const std::string &s) noexcept {
+size_t cxxbridge01$cxx_string$length(const std::string &s) noexcept {
   return s.length();
 }
 
 // RustString
-void cxxbridge00$rust_string$new(cxxbridge::RustString *self) noexcept;
-void cxxbridge00$rust_string$clone(cxxbridge::RustString *self,
+void cxxbridge01$rust_string$new(cxxbridge::RustString *self) noexcept;
+void cxxbridge01$rust_string$clone(cxxbridge::RustString *self,
                                    const cxxbridge::RustString &other) noexcept;
-bool cxxbridge00$rust_string$from(cxxbridge::RustString *self, const char *ptr,
+bool cxxbridge01$rust_string$from(cxxbridge::RustString *self, const char *ptr,
                                   size_t len) noexcept;
-void cxxbridge00$rust_string$drop(cxxbridge::RustString *self) noexcept;
+void cxxbridge01$rust_string$drop(cxxbridge::RustString *self) noexcept;
 const char *
-cxxbridge00$rust_string$ptr(const cxxbridge::RustString *self) noexcept;
-size_t cxxbridge00$rust_string$len(const cxxbridge::RustString *self) noexcept;
+cxxbridge01$rust_string$ptr(const cxxbridge::RustString *self) noexcept;
+size_t cxxbridge01$rust_string$len(const cxxbridge::RustString *self) noexcept;
 
 // RustStr
-bool cxxbridge00$rust_str$valid(const char *ptr, size_t len) noexcept;
+bool cxxbridge01$rust_str$valid(const char *ptr, size_t len) noexcept;
 } // extern "C"
 
-namespace cxxbridge00 {
+namespace cxxbridge01 {
 
-RustString::RustString() noexcept { cxxbridge00$rust_string$new(this); }
+RustString::RustString() noexcept { cxxbridge01$rust_string$new(this); }
 
 RustString::RustString(const RustString &other) noexcept {
-  cxxbridge00$rust_string$clone(this, other);
+  cxxbridge01$rust_string$clone(this, other);
 }
 
 RustString::RustString(RustString &&other) noexcept {
   this->repr = other.repr;
-  cxxbridge00$rust_string$new(&other);
+  cxxbridge01$rust_string$new(&other);
 }
 
 RustString::RustString(const char *s) {
   auto len = strlen(s);
-  if (!cxxbridge00$rust_string$from(this, s, len)) {
+  if (!cxxbridge01$rust_string$from(this, s, len)) {
     throw std::invalid_argument("data for RustString is not utf-8");
   }
 }
@@ -52,12 +52,12 @@
 RustString::RustString(const std::string &s) {
   auto ptr = s.data();
   auto len = s.length();
-  if (!cxxbridge00$rust_string$from(this, ptr, len)) {
+  if (!cxxbridge01$rust_string$from(this, ptr, len)) {
     throw std::invalid_argument("data for RustString is not utf-8");
   }
 }
 
-RustString::~RustString() noexcept { cxxbridge00$rust_string$drop(this); }
+RustString::~RustString() noexcept { cxxbridge01$rust_string$drop(this); }
 
 RustString::operator std::string() const {
   return std::string(this->data(), this->size());
@@ -65,31 +65,31 @@
 
 RustString &RustString::operator=(const RustString &other) noexcept {
   if (this != &other) {
-    cxxbridge00$rust_string$drop(this);
-    cxxbridge00$rust_string$clone(this, other);
+    cxxbridge01$rust_string$drop(this);
+    cxxbridge01$rust_string$clone(this, other);
   }
   return *this;
 }
 
 RustString &RustString::operator=(RustString &&other) noexcept {
   if (this != &other) {
-    cxxbridge00$rust_string$drop(this);
+    cxxbridge01$rust_string$drop(this);
     this->repr = other.repr;
-    cxxbridge00$rust_string$new(&other);
+    cxxbridge01$rust_string$new(&other);
   }
   return *this;
 }
 
 const char *RustString::data() const noexcept {
-  return cxxbridge00$rust_string$ptr(this);
+  return cxxbridge01$rust_string$ptr(this);
 }
 
 size_t RustString::size() const noexcept {
-  return cxxbridge00$rust_string$len(this);
+  return cxxbridge01$rust_string$len(this);
 }
 
 size_t RustString::length() const noexcept {
-  return cxxbridge00$rust_string$len(this);
+  return cxxbridge01$rust_string$len(this);
 }
 
 std::ostream &operator<<(std::ostream &os, const RustString &s) {
@@ -101,13 +101,13 @@
     : repr(Repr{reinterpret_cast<const char *>(this), 0}) {}
 
 RustStr::RustStr(const char *s) : repr(Repr{s, strlen(s)}) {
-  if (!cxxbridge00$rust_str$valid(this->repr.ptr, this->repr.len)) {
+  if (!cxxbridge01$rust_str$valid(this->repr.ptr, this->repr.len)) {
     throw std::invalid_argument("data for RustStr is not utf-8");
   }
 }
 
 RustStr::RustStr(const std::string &s) : repr(Repr{s.data(), s.length()}) {
-  if (!cxxbridge00$rust_str$valid(this->repr.ptr, this->repr.len)) {
+  if (!cxxbridge01$rust_str$valid(this->repr.ptr, this->repr.len)) {
     throw std::invalid_argument("data for RustStr is not utf-8");
   }
 }
@@ -138,30 +138,30 @@
   return os;
 }
 
-} // namespace cxxbridge00
+} // namespace cxxbridge01
 
 extern "C" {
-void cxxbridge00$unique_ptr$std$string$null(
+void cxxbridge01$unique_ptr$std$string$null(
     std::unique_ptr<std::string> *ptr) noexcept {
   new (ptr) std::unique_ptr<std::string>();
 }
-void cxxbridge00$unique_ptr$std$string$new(std::unique_ptr<std::string> *ptr,
+void cxxbridge01$unique_ptr$std$string$new(std::unique_ptr<std::string> *ptr,
                                            std::string *value) noexcept {
   new (ptr) std::unique_ptr<std::string>(new std::string(std::move(*value)));
 }
-void cxxbridge00$unique_ptr$std$string$raw(std::unique_ptr<std::string> *ptr,
+void cxxbridge01$unique_ptr$std$string$raw(std::unique_ptr<std::string> *ptr,
                                            std::string *raw) noexcept {
   new (ptr) std::unique_ptr<std::string>(raw);
 }
-const std::string *cxxbridge00$unique_ptr$std$string$get(
+const std::string *cxxbridge01$unique_ptr$std$string$get(
     const std::unique_ptr<std::string> &ptr) noexcept {
   return ptr.get();
 }
-std::string *cxxbridge00$unique_ptr$std$string$release(
+std::string *cxxbridge01$unique_ptr$std$string$release(
     std::unique_ptr<std::string> &ptr) noexcept {
   return ptr.release();
 }
-void cxxbridge00$unique_ptr$std$string$drop(
+void cxxbridge01$unique_ptr$std$string$drop(
     std::unique_ptr<std::string> *ptr) noexcept {
   ptr->~unique_ptr();
 }
diff --git a/src/lib.rs b/src/lib.rs
index 8ed9572..5c018c2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -298,9 +298,9 @@
 //! <tr><th>name in Rust</th><th>name in C++</th><th>restrictions</th></tr>
 //! <tr><td>String</td><td>cxxbridge::RustString</td><td></td></tr>
 //! <tr><td>&amp;str</td><td>cxxbridge::RustStr</td><td></td></tr>
-//! <tr><td><a href="https://docs.rs/cxx/0.0/cxx/struct.CxxString.html">CxxString</a></td><td>std::string</td><td><sup><i>cannot be passed by value</i></sup></td></tr>
+//! <tr><td><a href="https://docs.rs/cxx/0.1/cxx/struct.CxxString.html">CxxString</a></td><td>std::string</td><td><sup><i>cannot be passed by value</i></sup></td></tr>
 //! <tr><td>Box&lt;T&gt;</td><td>cxxbridge::RustBox&lt;T&gt;</td><td><sup><i>cannot hold opaque C++ type</i></sup></td></tr>
-//! <tr><td><a href="https://docs.rs/cxx/0.0/cxx/struct.UniquePtr.html">UniquePtr&lt;T&gt;</a></td><td>std::unique_ptr&lt;T&gt;</td><td><sup><i>cannot hold opaque Rust type</i></sup></td></tr>
+//! <tr><td><a href="https://docs.rs/cxx/0.1/cxx/struct.UniquePtr.html">UniquePtr&lt;T&gt;</a></td><td>std::unique_ptr&lt;T&gt;</td><td><sup><i>cannot hold opaque Rust type</i></sup></td></tr>
 //! <tr><td></td><td></td><td></td></tr>
 //! </table>
 //!
diff --git a/src/rust_str.rs b/src/rust_str.rs
index 5aeac28..59a7784 100644
--- a/src/rust_str.rs
+++ b/src/rust_str.rs
@@ -23,7 +23,7 @@
     }
 }
 
-#[export_name = "cxxbridge00$rust_str$valid"]
+#[export_name = "cxxbridge01$rust_str$valid"]
 unsafe extern "C" fn str_valid(ptr: *const u8, len: usize) -> bool {
     let slice = slice::from_raw_parts(ptr, len);
     str::from_utf8(slice).is_ok()
diff --git a/src/rust_string.rs b/src/rust_string.rs
index 5756efa..250a46f 100644
--- a/src/rust_string.rs
+++ b/src/rust_string.rs
@@ -26,17 +26,17 @@
     }
 }
 
-#[export_name = "cxxbridge00$rust_string$new"]
+#[export_name = "cxxbridge01$rust_string$new"]
 unsafe extern "C" fn string_new(this: &mut MaybeUninit<String>) {
     ptr::write(this.as_mut_ptr(), String::new());
 }
 
-#[export_name = "cxxbridge00$rust_string$clone"]
+#[export_name = "cxxbridge01$rust_string$clone"]
 unsafe extern "C" fn string_clone(this: &mut MaybeUninit<String>, other: &String) {
     ptr::write(this.as_mut_ptr(), other.clone());
 }
 
-#[export_name = "cxxbridge00$rust_string$from"]
+#[export_name = "cxxbridge01$rust_string$from"]
 unsafe extern "C" fn string_from(
     this: &mut MaybeUninit<String>,
     ptr: *const u8,
@@ -52,17 +52,17 @@
     }
 }
 
-#[export_name = "cxxbridge00$rust_string$drop"]
+#[export_name = "cxxbridge01$rust_string$drop"]
 unsafe extern "C" fn string_drop(this: &mut ManuallyDrop<String>) {
     ManuallyDrop::drop(this);
 }
 
-#[export_name = "cxxbridge00$rust_string$ptr"]
+#[export_name = "cxxbridge01$rust_string$ptr"]
 unsafe extern "C" fn string_ptr(this: &String) -> *const u8 {
     this.as_ptr()
 }
 
-#[export_name = "cxxbridge00$rust_string$len"]
+#[export_name = "cxxbridge01$rust_string$len"]
 unsafe extern "C" fn string_len(this: &String) -> usize {
     this.len()
 }
diff --git a/src/unique_ptr.rs b/src/unique_ptr.rs
index f6d2e86..19718bb 100644
--- a/src/unique_ptr.rs
+++ b/src/unique_ptr.rs
@@ -130,17 +130,17 @@
 }
 
 extern "C" {
-    #[link_name = "cxxbridge00$unique_ptr$std$string$null"]
+    #[link_name = "cxxbridge01$unique_ptr$std$string$null"]
     fn unique_ptr_std_string_null(this: *mut *mut c_void);
-    #[link_name = "cxxbridge00$unique_ptr$std$string$new"]
+    #[link_name = "cxxbridge01$unique_ptr$std$string$new"]
     fn unique_ptr_std_string_new(this: *mut *mut c_void, value: *mut CxxString);
-    #[link_name = "cxxbridge00$unique_ptr$std$string$raw"]
+    #[link_name = "cxxbridge01$unique_ptr$std$string$raw"]
     fn unique_ptr_std_string_raw(this: *mut *mut c_void, raw: *mut CxxString);
-    #[link_name = "cxxbridge00$unique_ptr$std$string$get"]
+    #[link_name = "cxxbridge01$unique_ptr$std$string$get"]
     fn unique_ptr_std_string_get(this: *const *mut c_void) -> *const CxxString;
-    #[link_name = "cxxbridge00$unique_ptr$std$string$release"]
+    #[link_name = "cxxbridge01$unique_ptr$std$string$release"]
     fn unique_ptr_std_string_release(this: *mut *mut c_void) -> *mut CxxString;
-    #[link_name = "cxxbridge00$unique_ptr$std$string$drop"]
+    #[link_name = "cxxbridge01$unique_ptr$std$string$drop"]
     fn unique_ptr_std_string_drop(this: *mut *mut c_void);
 }