about summary refs log tree commit diff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md196
1 files changed, 82 insertions, 114 deletions
diff --git a/README.md b/README.md
index 85de569658c6..c406dc5e6ea4 100644
--- a/README.md
+++ b/README.md
@@ -1,114 +1,82 @@
-# Abseil - C++ Common Libraries
-
-The repository contains the Abseil C++ library code. Abseil is an open-source
-collection of C++ code (compliant to C++11) designed to augment the C++
-standard library.
-
-## Table of Contents
-
-- [About Abseil](#about)
-- [Quickstart](#quickstart)
-- [Building Abseil](#build)
-- [Codemap](#codemap)
-- [License](#license)
-- [Links](#links)
-
-<a name="about"></a>
-## About Abseil
-
-Abseil is an open-source collection of C++ library code designed to augment
-the C++ standard library. The Abseil library code is collected from Google's
-own C++ code base, has been extensively tested and used in production, and
-is the same code we depend on in our daily coding lives.
-
-In some cases, Abseil provides pieces missing from the C++ standard; in
-others, Abseil provides alternatives to the standard for special needs
-we've found through usage in the Google code base. We denote those cases
-clearly within the library code we provide you.
-
-Abseil is not meant to be a competitor to the standard library; we've
-just found that many of these utilities serve a purpose within our code
-base, and we now want to provide those resources to the C++ community as
-a whole.
-
-<a name="quickstart"></a>
-## Quickstart
-
-If you want to just get started, make sure you at least run through the
-[Abseil Quickstart](https://abseil.io/docs/cpp/quickstart). The Quickstart
-contains information about setting up your development environment, downloading
-the Abseil code, running tests, and getting a simple binary working.
-
-<a name="build"></a>
-## Building Abseil
-
-[Bazel](https://bazel.build) is the official build system for Abseil,
-which is supported on most major platforms (Linux, Windows, macOS, for example)
-and compilers. See the [quickstart](https://abseil.io/docs/cpp/quickstart) for
-more information on building Abseil using the Bazel build system.
-
-<a name="cmake"></a>
-If you require CMake support, please check the
-[CMake build instructions](CMake/README.md).
-
-## Codemap
-
-Abseil contains the following C++ library components:
-
-* [`base`](absl/base/) Abseil Fundamentals
-  <br /> The `base` library contains initialization code and other code which
-  all other Abseil code depends on. Code within `base` may not depend on any
-  other code (other than the C++ standard library).
-* [`algorithm`](absl/algorithm/)
-  <br /> The `algorithm` library contains additions to the C++ `<algorithm>`
-  library and container-based versions of such algorithms.
-* [`container`](absl/container/)
-  <br /> The `container` library contains additional STL-style containers,
-  including Abseil's unordered "Swiss table" containers.
-* [`debugging`](absl/debugging/)
-  <br /> The `debugging` library contains code useful for enabling leak
-  checks, and stacktrace and symbolization utilities.
-* [`hash`](absl/hash/)
-  <br /> The `hash` library contains the hashing framework and default hash
-  functor implementations for hashable types in Abseil.
-* [`memory`](absl/memory/)
-  <br /> The `memory` library contains C++11-compatible versions of
-  `std::make_unique()` and related memory management facilities.
-* [`meta`](absl/meta/)
-  <br /> The `meta` library contains C++11-compatible versions of type checks
-  available within C++14 and C++17 versions of the C++ `<type_traits>` library.
-* [`numeric`](absl/numeric/)
-  <br /> The `numeric` library contains C++11-compatible 128-bit integers.
-* [`strings`](absl/strings/)
-  <br /> The `strings` library contains a variety of strings routines and
-  utilities, including a C++11-compatible version of the C++17
-  `std::string_view` type.
-* [`synchronization`](absl/synchronization/)
-  <br /> The `synchronization` library contains concurrency primitives (Abseil's
-  `absl::Mutex` class, an alternative to `std::mutex`) and a variety of
-  synchronization abstractions.
-* [`time`](absl/time/)
-  <br /> The `time` library contains abstractions for computing with absolute
-  points in time, durations of time, and formatting and parsing time within
-  time zones.
-* [`types`](absl/types/)
-  <br /> The `types` library contains non-container utility types, like a
-  C++11-compatible version of the C++17 `std::optional` type.
-* [`utility`](absl/utility/)
-  <br /> The `utility` library contains utility and helper code.
-
-## License
-
-The Abseil C++ library is licensed under the terms of the Apache
-license. See [LICENSE](LICENSE) for more information.
-
-## Links
-
-For more information about Abseil:
-
-* Consult our [Abseil Introduction](https://abseil.io/about/intro)
-* Read [Why Adopt Abseil](https://abseil.io/about/philosophy) to understand our
-  design philosophy.
-* Peruse our
-  [Abseil Compatibility Guarantees](https://abseil.io/about/compatibility) to
-  understand both what we promise to you, and what we expect of you in return.
+depot
+=====
+
+[![builds.sr.ht status](https://builds.sr.ht/~tazjin/depot/master.svg)](https://builds.sr.ht/~tazjin/depot/master?)
+
+This repository is the [monorepo][] for the community around [tazjin's virus
+lounge][tvl], containing our personal tools and infrastructure. Everything in
+here is built using [Nix][].
+
+If you've ended up here and have no idea who I am, feel free to follow me [on
+Twitter][].
+
+# Highlights
+
+## Tools
+
+* `tools/emacs` contains my personal Emacs configuration (packages & config)
+* `fun/aoc2019` contains solutions for a handful of Advent of Code 2019
+  challenges, before I ran out of interest
+* `tools/blog_cli` contains my tool for writing new blog posts and storing them
+  in the DNS zone
+* `tools/cheddar` contains a source code and Markdown rendering tool
+  that is integrated with my cgit instance to render files in various
+  views
+* `ops/kms_pass.nix` is a tiny tool that emulates the user-interface of `pass`,
+  but actually uses Google Cloud KMS for secret decryption
+* `ops/kontemplate` contains my Kubernetes resource templating tool (with which
+  the services in this repository are deployed!)
+* `ops/besadii` contains a tool that runs as the git
+  `post-receive`-hook on my git server to trigger builds on sourcehut.
+* `third_party/nix` contains my fork of the Nix package manager
+
+## Packages / Libraries
+
+* `nix/buildGo` implements a Nix library that can build Go software in the style
+  of Bazel's `rules_go`. Go programs in this repository are built using this
+  library.
+* `nix/buildLisp` implements a Nix library that can build Common Lisp
+  software. Currently only SBCL is supported. Lisp programs in this
+  repository are built using this library.
+* `tools/emacs-pkgs` contains various Emacs libraries that my Emacs setup uses,
+  for example:
+  * `dottime.el` provides [dottime][] in the Emacs modeline
+  * `nix-util.el` provides editing utilities for Nix files
+  * `term-switcher.el` is an ivy-function for switching between vterm buffers
+* `net/alcoholic_jwt` contains an easy-to-use JWT-validation library for Rust
+* `net/crimp` contains a high-level HTTP client using cURL for Rust
+
+## Services
+
+Services in this repository are deployed on a Google Kubernetes Engine cluster
+using [Nixery][].
+
+* `web/blog` and `web/homepage` contain my blog and website setup
+  (serving at [tazj.in][])
+* `web/cgit-taz` contains a slightly patched version of `cgit` that serves my
+  git web interface at [git.tazj.in][]
+* `ops/journaldriver` contains a small Rust daemon that can forward logs from
+  journald to Stackdriver Logging
+
+## Miscellaneous
+
+Presentations I've given in the past are in the `presentations` folder, these
+cover a variety of topics and some of them have links to recordings.
+
+There's a few fun things in the `fun/` folder, often with context given in the
+README. Check out my [list of the best tools][best-tools] for example.
+
+# Contributing
+
+If you'd like to contribute to any of the tools in here, please check out the
+[contribution guidelines](/tree/docs/CONTRIBUTING.md).
+
+[monorepo]: https://en.wikipedia.org/wiki/Monorepo
+[tvl]: https://tvl.fyi
+[Nix]: https://nixos.org/nix
+[on Twitter]: https://twitter.com/tazjin
+[Nixery]: https://github.com/google/nixery
+[tazj.in]: https://tazj.in
+[git.tazj.in]: https://git.tazj.in
+[best-tools]: /about/fun/best-tools/README.md
+[dottime]: https://dotti.me