Initial commit
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..3d7ff72
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,13 @@
+Copyright 2020 Google LLC
+
+Licensed 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
+
+    https://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.
diff --git a/README.md b/README.md
index e8fbbc8..22a2c1c 100644
--- a/README.md
+++ b/README.md
@@ -1,56 +1,10 @@
 # JSON5
 
-[![crates.io](https://img.shields.io/crates/v/json5.svg)](https://crates.io/crates/json5)
-[![docs.rs](https://docs.rs/json5/badge.svg)](https://docs.rs/json5)
+A Rust library for serializing and deserializing [JSON5][json5] with
+[Serde][serde].
 
-A Rust [JSON5] serializer and deserializer which speaks [Serde].
+This project is a fork of [callum-oakley/json5-rs][github-json5-rs].
 
-## API
-
-Deserialize a JSON5 string with `from_str`. Go the other way with `to_string`.
-The serializer is very basic at the moment, it just produces plain old JSON.
-See the [Serde documentation] for details on implementing `Serialize` and
-`Deserialize`. (Usually it's just a case of sprinkling in some derives.)
-
-The [Serde data model] is mostly supported, with the exception of bytes and
-borrowed strings.
-
-## Example
-
-Read some config into a struct.
-
-```rust
-use json5;
-use serde_derive::Deserialize;
-
-#[derive(Deserialize, Debug, PartialEq)]
-struct Config {
-    message: String,
-    n: i32,
-}
-
-fn main() {
-    let config = "
-        {
-          // A traditional message.
-          message: 'hello world',
-
-          // A number for some reason.
-          n: 42,
-        }
-    ";
-
-    assert_eq!(
-        json5::from_str(config),
-        Ok(Config {
-            message: "hello world".to_string(),
-            n: 42,
-        }),
-    );
-}
-```
-
-[JSON5]: https://json5.org/
-[Serde]: https://serde.rs/
-[Serde documentation]: https://serde.rs/custom-serialization.html
-[Serde data model]: https://serde.rs/data-model.html
+[json5]: https://json5.org/
+[serde]: https://serde.rs/
+[github-json5-rs]: https://github.com/callum-oakley/json5-rs
diff --git a/Cargo.toml b/third_party/Cargo.toml
similarity index 100%
rename from Cargo.toml
rename to third_party/Cargo.toml
diff --git a/LICENCE b/third_party/LICENCE
similarity index 100%
rename from LICENCE
rename to third_party/LICENCE
diff --git a/third_party/README.md b/third_party/README.md
new file mode 100644
index 0000000..e8fbbc8
--- /dev/null
+++ b/third_party/README.md
@@ -0,0 +1,56 @@
+# JSON5
+
+[![crates.io](https://img.shields.io/crates/v/json5.svg)](https://crates.io/crates/json5)
+[![docs.rs](https://docs.rs/json5/badge.svg)](https://docs.rs/json5)
+
+A Rust [JSON5] serializer and deserializer which speaks [Serde].
+
+## API
+
+Deserialize a JSON5 string with `from_str`. Go the other way with `to_string`.
+The serializer is very basic at the moment, it just produces plain old JSON.
+See the [Serde documentation] for details on implementing `Serialize` and
+`Deserialize`. (Usually it's just a case of sprinkling in some derives.)
+
+The [Serde data model] is mostly supported, with the exception of bytes and
+borrowed strings.
+
+## Example
+
+Read some config into a struct.
+
+```rust
+use json5;
+use serde_derive::Deserialize;
+
+#[derive(Deserialize, Debug, PartialEq)]
+struct Config {
+    message: String,
+    n: i32,
+}
+
+fn main() {
+    let config = "
+        {
+          // A traditional message.
+          message: 'hello world',
+
+          // A number for some reason.
+          n: 42,
+        }
+    ";
+
+    assert_eq!(
+        json5::from_str(config),
+        Ok(Config {
+            message: "hello world".to_string(),
+            n: 42,
+        }),
+    );
+}
+```
+
+[JSON5]: https://json5.org/
+[Serde]: https://serde.rs/
+[Serde documentation]: https://serde.rs/custom-serialization.html
+[Serde data model]: https://serde.rs/data-model.html
diff --git a/src/de.rs b/third_party/src/de.rs
similarity index 100%
rename from src/de.rs
rename to third_party/src/de.rs
diff --git a/src/error.rs b/third_party/src/error.rs
similarity index 100%
rename from src/error.rs
rename to third_party/src/error.rs
diff --git a/src/json5.pest b/third_party/src/json5.pest
similarity index 100%
rename from src/json5.pest
rename to third_party/src/json5.pest
diff --git a/src/lib.rs b/third_party/src/lib.rs
similarity index 100%
rename from src/lib.rs
rename to third_party/src/lib.rs
diff --git a/src/ser.rs b/third_party/src/ser.rs
similarity index 100%
rename from src/ser.rs
rename to third_party/src/ser.rs
diff --git a/tests/adapted_from_js_reference.rs b/third_party/tests/adapted_from_js_reference.rs
similarity index 100%
rename from tests/adapted_from_js_reference.rs
rename to third_party/tests/adapted_from_js_reference.rs
diff --git a/tests/assets/json5_dot_org_example.json5 b/third_party/tests/assets/json5_dot_org_example.json5
similarity index 100%
rename from tests/assets/json5_dot_org_example.json5
rename to third_party/tests/assets/json5_dot_org_example.json5
diff --git a/tests/common.rs b/third_party/tests/common.rs
similarity index 100%
rename from tests/common.rs
rename to third_party/tests/common.rs
diff --git a/tests/de.rs b/third_party/tests/de.rs
similarity index 100%
rename from tests/de.rs
rename to third_party/tests/de.rs
diff --git a/tests/json5_dot_org_example.rs b/third_party/tests/json5_dot_org_example.rs
similarity index 100%
rename from tests/json5_dot_org_example.rs
rename to third_party/tests/json5_dot_org_example.rs
diff --git a/tests/ser.rs b/third_party/tests/ser.rs
similarity index 100%
rename from tests/ser.rs
rename to third_party/tests/ser.rs