diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 196 |
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 |