bryancall commented on code in PR #12375: URL: https://github.com/apache/trafficserver/pull/12375#discussion_r2225590324
########## memory-bank/01-project-overview.md: ########## @@ -0,0 +1,93 @@ +# Apache Traffic Server - Project Overview + +## Project Overview + +**Apache Traffic Server (ATS)** is a high-performance, open-source HTTP/HTTPS caching proxy server and web application acceleration platform. It's designed as a building block for cloud services and large-scale web applications. + +### Key Characteristics +- **Version**: 10.2.0 (current) Review Comment: Should this be the current released version? Are we going to update this per branch per release? ########## memory-bank/02-build-system.md: ########## @@ -0,0 +1,96 @@ +# Apache Traffic Server - Build System & Configuration + +## Build System & Configuration + +### CMake Build System (Version 10+) +```bash +# Basic build +cmake -B build +cmake --build build Review Comment: I would just have one build command. Would be nice to have a command box with a copy command. ########## memory-bank/README.md: ########## @@ -0,0 +1,68 @@ +# Apache Traffic Server Memory Bank + +## Overview + +This memory bank contains comprehensive documentation about the Apache Traffic Server project, organized into focused sections for easy reference. + +This document follows best practices from https://docs.cline.bot/prompting/cline-memory-bank . + +## Project Summary + +**Apache Traffic Server (ATS)** is a high-performance, open-source HTTP/HTTPS caching proxy server and web application acceleration platform designed for cloud services and large-scale web applications. + +- **Version**: 10.2.0 (current) +- **Language**: C++20 +- **Build System**: CMake +- **License**: Apache License 2.0 +- **GitHub**: https://github.com/apache/trafficserver + +## Memory Bank Structure + +### [01 - Project Overview](01-project-overview.md) +Core project information including architecture, components, and features. + +### [02 - Build System & Configuration](02-build-system.md) +CMake build system, dependencies, configuration files, and development environment setup. + +### [03 - Plugin System](03-plugin-system.md) +Plugin architecture, core and experimental plugins, and development guidelines. + +### [04 - Development Workflow](04-development-workflow.md) +Code standards, testing frameworks, CI/CD, contributing process, and best practices. + +### [05 - Directory Structure & Installation](05-directory-structure.md) +Complete codebase organization, installation layout, and file system structure. + +### [06 - Technical Concepts](06-technical-concepts.md) +Core technical concepts including event system, cache architecture, and performance optimizations. + +## Quick Reference + +### Key Executables +- `traffic_server` - Main proxy server +- `traffic_ctl` - Command line management tool +- `traffic_top` - Statistics monitoring + +### Important Directories +- `src/` - Source code (iocore, proxy, mgmt, tools) +- `include/` - Header files and APIs +- `plugins/` - Core and experimental plugins +- `configs/` - Default configuration files + +### Build Commands +```bash +# Basic build +cmake -B build +cmake --build build Review Comment: One build command ########## memory-bank/01-project-overview.md: ########## @@ -0,0 +1,93 @@ +# Apache Traffic Server - Project Overview + +## Project Overview + +**Apache Traffic Server (ATS)** is a high-performance, open-source HTTP/HTTPS caching proxy server and web application acceleration platform. It's designed as a building block for cloud services and large-scale web applications. + +### Key Characteristics +- **Version**: 10.2.0 (current) +- **Language**: Primarily C++ (C++20 standard) +- **Build System**: CMake +- **License**: Apache License 2.0 +- **Platform Support**: Linux, FreeBSD, macOS, with extensive CI across multiple distributions + +## Architecture Overview + +### Core Components + +#### 1. **Traffic Server Core** (`src/traffic_server/`) +- Main proxy server executable +- Event-driven architecture +- Multi-threaded processing + +#### 2. **I/O Core** (`src/iocore/`) +- **AIO**: Asynchronous I/O operations +- **Cache**: Disk and RAM caching system +- **DNS**: Asynchronous DNS resolution +- **Event System**: Event-driven engine foundation +- **HostDB**: Internal DNS cache +- **Net**: Network layer with QUIC support +- **Utils**: Core utilities + +#### 3. **Proxy Logic** (`src/proxy/`) +- **HTTP**: HTTP/1.1 protocol implementation (`http/`) +- **HTTP/2**: HTTP/2 support (`http2/`) +- **HTTP/3**: HTTP/3 implementation (`http3/`) +- **Headers**: Header parsing and management (`hdrs/`) +- **Logging**: Flexible logging system (`logging/`) +- **Shared**: Common proxy components (`shared/`) + +#### 4. **Management** (`src/mgmt/`) +- JSONRPC server for management +- Configuration management +- Administrative tools Review Comment: Should the directories be on all of these for each section? Maybe just leave that for the README.md? ########## memory-bank/02-build-system.md: ########## @@ -0,0 +1,96 @@ +# Apache Traffic Server - Build System & Configuration + +## Build System & Configuration + +### CMake Build System (Version 10+) +```bash +# Basic build +cmake -B build +cmake --build build + +# With options +cmake -B build -DCMAKE_INSTALL_PREFIX=/opt/ats -DBUILD_EXPERIMENTAL_PLUGINS=ON + +# Using presets +cmake --preset dev Review Comment: I would change the preset to release and how to list the presets. Most people are users. ########## memory-bank/02-build-system.md: ########## @@ -0,0 +1,96 @@ +# Apache Traffic Server - Build System & Configuration + +## Build System & Configuration + +### CMake Build System (Version 10+) +```bash +# Basic build +cmake -B build +cmake --build build + +# With options +cmake -B build -DCMAKE_INSTALL_PREFIX=/opt/ats -DBUILD_EXPERIMENTAL_PLUGINS=ON + +# Using presets +cmake --preset dev +``` + +### Key Build Options +- `BUILD_EXPERIMENTAL_PLUGINS`: Enable experimental plugins +- `BUILD_REGRESSION_TESTING`: Build test suite +- `ENABLE_QUICHE`: QUIC support via quiche +- `ENABLE_LUAJIT`: Lua scripting support +- `ENABLE_CRIPTS`: Enable the Cripts scripting API +- `ENABLE_JEMALLOC`/`ENABLE_MIMALLOC`: Alternative memory allocators +- `ENABLE_HWLOC`: Hardware locality support +- `ENABLE_POSIX_CAP`: POSIX capabilities +- `ENABLE_DOCS`: Documentation building +- `ENABLE_AUTEST`: Automated testing framework + +### Dependencies +**Required:** +- CMake 3.20+ +- C++20 compatible compiler (GCC 10+, LLVM/Clang 12+) +- OpenSSL/BoringSSL/AWS-LC +- PCRE2 (Perl Compatible Regular Expressions) +- zlib + +**Optional but Recommended:** +- hwloc (hardware locality) +- libcap (POSIX capabilities) +- ncurses (for traffic_top) +- jemalloc/mimalloc (memory allocators) +- libfmt (for Cripts) + +## Configuration System + +### Configuration Files (`configs/`) +- **records.yaml**: Main configuration (YAML format) +- **cache.config**: Cache rules +- **remap.config**: URL remapping rules +- **parent.config**: Parent proxy configuration +- **ssl_multicert.config**: SSL certificate configuration +- **plugin.config**: Plugin loading configuration +- **ip_allow.yaml**: IP access control +- **logging.yaml**: Logging configuration +- **storage.config**: Storage configuration + +### Configuration Management +- JSONRPC API for runtime configuration +- `traffic_ctl` command-line interface +- Hot reloading for many configuration changes + +## Development Environment Setup + +### Prerequisites +```bash +# Ubuntu/Debian +sudo apt-get install cmake ninja-build pkg-config gcc g++ \ + libssl-dev libpcre3-dev libcap-dev libhwloc-dev \ + libncurses5-dev libcurl4-openssl-dev zlib1g-dev + +# macOS (Homebrew) +brew install cmake ninja pkg-config openssl pcre +``` + +### Quick Start +```bash +git clone https://github.com/apache/trafficserver.git +cd trafficserver +cmake --preset default Review Comment: Might want to use release here as the preset ########## memory-bank/04-development-workflow.md: ########## @@ -0,0 +1,42 @@ +# Apache Traffic Server - Development Workflow + +## Development Workflow + +### Code Standards +- **C++20** standard compliance +- **clang-format** for code formatting +- **yapf** for Python code formatting +- **cmake-format** for CMake files + +### Testing +- **Regression tests**: `BUILD_REGRESSION_TESTING=ON` +- **AuTest**: Automated testing framework +- **Fuzzing**: Clang fuzzer support +- **CI/CD**: Jenkins-based continuous integration + +### Contributing Process +1. Fork and branch from `master` Review Comment: Should have the commands, would be cool to have one of those boxes of commands you can copy from. ########## memory-bank/README.md: ########## @@ -0,0 +1,68 @@ +# Apache Traffic Server Memory Bank + +## Overview + +This memory bank contains comprehensive documentation about the Apache Traffic Server project, organized into focused sections for easy reference. + +This document follows best practices from https://docs.cline.bot/prompting/cline-memory-bank . + +## Project Summary + +**Apache Traffic Server (ATS)** is a high-performance, open-source HTTP/HTTPS caching proxy server and web application acceleration platform designed for cloud services and large-scale web applications. + +- **Version**: 10.2.0 (current) +- **Language**: C++20 +- **Build System**: CMake +- **License**: Apache License 2.0 +- **GitHub**: https://github.com/apache/trafficserver + +## Memory Bank Structure + +### [01 - Project Overview](01-project-overview.md) +Core project information including architecture, components, and features. + +### [02 - Build System & Configuration](02-build-system.md) +CMake build system, dependencies, configuration files, and development environment setup. + +### [03 - Plugin System](03-plugin-system.md) +Plugin architecture, core and experimental plugins, and development guidelines. + +### [04 - Development Workflow](04-development-workflow.md) +Code standards, testing frameworks, CI/CD, contributing process, and best practices. + +### [05 - Directory Structure & Installation](05-directory-structure.md) +Complete codebase organization, installation layout, and file system structure. + +### [06 - Technical Concepts](06-technical-concepts.md) +Core technical concepts including event system, cache architecture, and performance optimizations. + +## Quick Reference + +### Key Executables +- `traffic_server` - Main proxy server +- `traffic_ctl` - Command line management tool +- `traffic_top` - Statistics monitoring + +### Important Directories +- `src/` - Source code (iocore, proxy, mgmt, tools) +- `include/` - Header files and APIs +- `plugins/` - Core and experimental plugins +- `configs/` - Default configuration files + +### Build Commands +```bash +# Basic build +cmake -B build +cmake --build build + +# With presets +cmake --preset default Review Comment: Use release preset -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
