Skip to content

Instantly share code, notes, and snippets.

@danmayer
Created November 20, 2024 17:37
Show Gist options
  • Save danmayer/a4dac4d4b9141e955c604f1baa1a3e8e to your computer and use it in GitHub Desktop.
Save danmayer/a4dac4d4b9141e955c604f1baa1a3e8e to your computer and use it in GitHub Desktop.
name ring quadrant isNew status description
Memcached Hold Techniques FALSE new We prefer memcaced over other caching backends
Async Memcached Trail Techniques FALSE new We want to support async cache operations
NonBlocking Memcached Trial Techniques TRUE new We want all caching IO to be nonblocking to better leverage our machines
Memory Maps Assess Techniques TRUE new We are interested in exploring memory maps for low latency large data access
McRouter Hold Techniques FALSE new We are using this technology until we can replace it
Memcached Adopt Platforms FALSE no change We prefer memcaced over other caching backends
Ruby Caching Client Trial Platforms FALSE moved in We prefer a Ruby caching client vs a Ruby/Rust client
Rust Caching Client Hold Platforms FALSE moved out When possibly we want to avoid mixing Ruby and Rust in our client APIs
Conan Adopt Tools TRUE new <p><strong><a href="https://conan.io/">Conan</a></strong> is an open-source dependency management tool for C/C++ applications. It provides an intuitive interface for defining, fetching and managing dependencies which makes it easy for developers to integrate third-party libraries into their projects. Conan works across all major operating systems and can target a variety of platforms, including servers and desktop, mobile and embedded devices. It can also be used for building and publishing C/C++ libraries and packages. The packages can be shared across teams via JFrog Artifactory servers. By leveraging prebuilt binaries, it significantly reduces build times, especially for hefty dependencies. Conan integrates with popular build systems like CMake and also has a Python SDK for extending the build system for tasks like signing. In our experience, Conan translates to improved build reproducibility across environments and faster development cycles. The resulting codebases are cleaner and easier to maintain, a major win for large-scale projects. If you're wrestling with dependency management in your C or C++ projects, Conan is a must-consider tool to boost your development efficiency.</p>
Kaniko Adopt Tools FALSE moved in <p>We added <strong><a href="https://github.com/GoogleContainerTools/kaniko">Kaniko</a></strong> to the Radar in October 2022, shortly after <a href="https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#dockershim-removed-from-kubelet">Kubernetes moved on from supporting Docker</a>, highlighting at the time the trend away from Docker as the default to build container images within container-based pipelines. Since then, we've expanded our experience with Kaniko across different pipelines' tooling and configurations. Our teams appreciate its flexibility and performance which is why we’re moving it to Adopt, highlighting Kaniko as the default tool in this space.</p>
Karpenter Adopt Tools FALSE moved in <p>One of the fundamental capabilities of <a href="/radar/platforms/kubernetes">Kubernetes</a> is horizontal autoscaling: its ability to launch new pods when additional capacity is needed and shut them down when loads decrease. However, this only works if the nodes needed to host the pods already exist. <a href="https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler">Cluster Autoscaler</a> can do some rudimentary cluster expansion triggered by pod failures, but it has limited flexibility; <strong><a href="https://karpenter.sh/">Karpenter</a></strong>, however, is a smarter, open-source <a href="/radar/tools/kubernetes-operators">Kubernetes Operator</a> node autoscaler: it analyzes current workloads and pod scheduling constraints, selects an appropriate instance type and then starts or stops it as needed. Karpenter is an operator in the spirit of tools such as <a href="/radar/tools/crossplane">Crossplane</a> that can provision cloud resources outside the cluster. Even though Karpenter was originally developed by AWS for EKS, it’s becoming the default node autoprovisioner across all cloud Kubernetes service providers, and Azure recently started supporting Karpenter with <a href="https://github.com/Azure/karpenter-provider-azure">AKS Karpenter Provider</a>.</p>
42Crunch API Conformance Scan Trial Tools TRUE new <p><strong><a href="https://42crunch.com/api-conformance-scan/">42Crunch API Conformance Scan</a></strong> is a dynamic testing tool designed to identify discrepancies between your API's documented behavior and its actual implementation. This tool takes your API's spec definition in OpenAPI format, which outlines the expected functionalities and responses, and compares it to the API's actual behavior. By generating real traffic and interacting with live endpoints, the tool can identify any discrepancies between what the API promises and what it delivers. This translates into several benefits for development teams. For example, it catches inconsistencies early in development, saving time and preventing issues from reaching production. The tool also helps improve API quality and security by identifying potential vulnerabilities arising from deviations from the documented behavior. Overall, API Scan helps you assess the security posture of your APIs by identifying problems such as weak authentication protocols, insecure data handling practices and insufficient input validation. It provides detailed reports highlighting any issues found, along with recommendations for remediation.</p>
actions-runner-controller Trial Tools FALSE moved in <p><strong><a href="https://github.com/actions-runner-controller/actions-runner-controller">actions-runner-controller</a></strong> is a Kubernetes <a href="https://kubernetes.io/docs/concepts/architecture/controller/">controller</a> that operates <a href="https://docs.github.com/en/actions/hosting-your-own-runners">self-hosted runners</a> for <a href="/radar/platforms/github-actions">GitHub Actions</a>. Self-hosted runners are helpful in scenarios where the job that GitHub Actions runs needs to access resources that are either not accessible to GitHub cloud runners or have specific operating system and environmental requirements that are different from what GitHub provides. In such scenarios where the team uses Kubernetes clusters, actions-runner-controller orchestrates and scales these runners. Our teams like its ability to scale runners based on the number of workflows running in a given repository, organization, enterprise or Kubernetes cluster, as well as its ability to handle both Linux and Windows runners.</p>
Android Emulator Container Trial Tools TRUE new <p><strong><a href="https://github.com/google/android-emulator-container-scripts">Android Emulator Containers</a></strong> streamline Android app testing by eliminating the complexities arising from OS compatibility issues and system dependencies as well as from setting up emulators for multiple Android versions. Traditionally, this complexity led to extra effort or teams foregoing automated testing completely, which, in turn, resulted in slower development and testing cycles. Android Emulator Containers simplify this process, allowing seamless integration into CI pipelines for automated testing. Our teams utilize these containers primarily for <a href="https://developer.android.com/training/testing/instrumented-tests">instrumented tests</a>, which are automatically executed with each commit to provide instantaneous feedback to developers. Additionally, we leverage Android Emulator Containers for running nightly end-to-end tests as well.</p>
AWS CUDOS Trial Tools TRUE new <p>Our advice has always been to monitor costs as a <a href="/radar/techniques/run-cost-as-architecture-fitness-function">fitness function</a>. Cloud providers offer a variety of services to monitor cloud spend such as <a href="https://aws.amazon.com/aws-cost-management/aws-cost-explorer/">AWS Cost Explorer</a> or <a href="https://cloud.google.com/billing/docs/how-to/finops-hub">Google Cloud FinOps Hub</a>. In the AWS ecosystem, our teams use the <a href="https://aws.amazon.com/blogs/awsmarketplace/using-cudos-dashboard-visualizations-aws-marketplace-spend-visibility-optimization/">CUDOS (Cost and Usage Dashboards Operations Solution)</a> dashboards to monitor <a href="https://aws.amazon.com/marketplace/">AWS Marketplace</a> spend segregated by the business departments or legal entities in a large parent organization. This dashboard provides comprehensive cost and usage details, with resource-level granularity that helps optimize costs, track usage goals and achieve operational excellence.</p>
aws-nuke Trial Tools TRUE new <p><strong><a href="https://github.com/rebuy-de/aws-nuke">aws-nuke</a></strong> is an open-source tool that tackles the common challenge of unused resources accumulating in development and sandbox AWS accounts that can lead to cost inefficiencies. The tool identifies and removes all deletable resources within an AWS account or region with the exception of default or AWS-managed resources, essentially resetting the environment to a Day One state. It also offers customizable exclusion policies to ensure critical resources remain protected. We’ve used this tool for the default use case of cost optimization as well as for disaster recovery (DR) contexts with good results. By automating cleanup in development and sandbox environments, aws-nuke helps minimize unnecessary resource expenditure. It also facilitates efficient teardown of temporary DR infrastructure after drills or exercises. Although stable, aws-nuke is a very destructive tool and is not intended to be used in production environments. Always perform a dry run to confirm that essential resources won’t be deleted.</p>
Bruno Trial Tools TRUE new <p><strong><a href="https://github.com/usebruno/bruno">Bruno</a></strong> is an open-source desktop alternative to <a href="/radar/tools/postman">Postman</a> and <a href="/radar/tools/insomnia">Insomnia</a> for API testing, development and debugging. It stores your collections locally on the filesystem so you can use Git or a version control of your choice to collaborate. Several Thoughtworks teams are using Bruno and like its simple offline-only design.</p>
Develocity Trial Tools TRUE new <p><strong><a href="https://gradle.com/develocity/">Develocity</a></strong> (previously Gradle Enterprise) addresses the pain point of lengthy build and test cycles in large-scale software projects. It employs performance improvements such as build caching and predictive test selection to shorten developer feedback loops in both local and CI/CD environments. Our platform teams have found it useful for speeding up builds and tests, analyzing commands to determine what part of the workflow still needs to be optimized, identifying and troubleshooting flaky tests and performing analysis on the hardware used to run them.</p>
GitHub Copilot Trial Tools FALSE no change <p>While the AI coding assistance market is getting busier and busier, <strong><a href="https://github.com/features/copilot">GitHub Copilot</a></strong> remains our default choice and is used by many of our teams. Since we last wrote about GitHub Copilot, the most interesting improvements came in the chat feature. For instance, it's no longer necessary to clutter the code with comments as prompts; instead, an inline chat helps you prompt without writing a comment. The inline chat can also change code, not just write new lines. You can now also significantly expand the context of the chat when asking questions about your code by using the <code>@workspace</code> tag. This allows you to ask questions about the entire codebase, not just the open files. You can expand this context even further with the <a href="https://github.blog/2024-02-27-github-copilot-enterprise-is-now-generally-available/">Copilot Enterprise</a> version, which pulls in context from all repositories you host on GitHub. Finally, GitHub has started routing some chat requests to a more powerful GPT-4–based model, and availability of the chat in the popular Jetbrains IDEs is imminent (although still in private beta at the time of writing). These releases show that the pace of improvements in the space has not slowed down. If you tried a coding assistant last year and dismissed it, we recommend that you keep monitoring the features being released and give it another try.</p>
Gradio Trial Tools FALSE moved in <p><strong><a href="https://github.com/gradio-app/gradio">Gradio</a></strong> is an open-source Python library that facilitates the creation of interactive web-based interfaces for machine learning (ML) models. A graphical user interface on top of ML models provides a better understanding of the inputs, constraints and outputs by nontechnical audiences. Gradio has gained a lot of traction in the generative AI space, as it is one of the tools that makes generative models so accessible to experiment with. Usually, we put technologies into the Trial ring when we’ve seen them used in production at least once. Gradio's purpose and strength are experimentation and prototyping, and we’ve used it for that purpose many times. Recently, one of our teams even used it to help a client with live demonstrations at big events. We’re very happy with Gradio's capabilities for those use cases, and therefore move it into the Trial ring.</p>
Gradle Version Catalog Trial Tools TRUE new <p><strong><a href="https://docs.gradle.org/current/userguide/platforms.html">Gradle version catalog</a></strong> is a useful feature of the Gradle build tool that allows you to manage dependencies centrally in the build file. Our teams have found it especially useful with <a href="https://developer.android.com/build/migrate-to-catalogs">Android multi-module</a> projects. Instead of hardcoding dependency names and versions in individual build files and managing upgrades, you can create a central version catalog of these dependencies and then reference it in a type-safe way with Android Studio assistance.</p>
Maestro Trial Tools FALSE moved in <p><strong><a href="https://maestro.mobile.dev/">Maestro</a></strong> is extremely useful when testing complex flows in mobile applications. Our teams have found it easy to learn, easy to understand and easy to integrate into our development workflow. Maestro supports a range of mobile platforms including iOS, Android, <a href="/radar/languages-and-frameworks/react-native">React Native</a> and <a href="/radar/languages-and-frameworks/flutter">Flutter</a> apps. Its declarative YAML syntax simplifies the automation of complex mobile UI interactions. Based on the tool's evolution, marked by enhanced features like comprehensive iOS support and the introduction of tools like <a href="https://maestro.mobile.dev/getting-started/maestro-studio">Maestro Studio</a> and <a href="https://cloud.mobile.dev/">Maestro Cloud</a>, we encourage anyone seeking to optimize their mobile application testing processes to give it a try.</p>
Microsoft SBOM tool Trial Tools TRUE new <p><strong><a href="https://github.com/microsoft/sbom-tool">Microsoft SBOM tool</a></strong> is an open-source tool to generate <a href="https://spdx.dev/">SPDX</a>-compatible Software Bill of Materials (SBOM). We have blipped about <a href="/radar/techniques/software-bill-of-materials">the need for SBOM</a> previously, and this tool makes it easier to get started. SBOM tool supports a variety of popular package managers (including npm, pip and Gradle), making it compatible with a wide range of projects. It’s very easy to use and can be integrated into existing development workflows, including integration with CI/CD pipelines. By leveraging SBOM generated with this tool, developers gain multiple advantages. Improved software security is a key benefit, as a clear view of components allows for easier vulnerability identification and risk management. License compliance is also enhanced, as developers can ensure adherence to all relevant agreements. Furthermore, SBOM promotes transparency within the software supply chain, aiding dependency tracking and mitigating potential risks. If you're looking to streamline SBOM generation, improve software security and gain control over your software supply chain, you should give Microsoft SBOM tool a try.</p>
Open Policy Agent (OPA) Trial Tools FALSE no change <p><strong><a href="https://www.openpolicyagent.org/">Open Policy Agent (OPA)</a></strong> is a uniform framework and <a href="https://www.openpolicyagent.org/docs/latest/#rego">language</a> for declaring, enforcing and controlling policies. For our teams, it has become a favored way of defining policies for distributed systems, particularly where we need to implement <a href="https://www.youtube.com/watch?v=zyw2GJlL4Lg&list=PLj6h78yzYM2M3-reG8FBlsE5s7P_UOvl4&index=34">compliance at the point of change</a>. OPA allows teams to implement various platform engineering patterns, such as controlling what is deployed to Kubernetes clusters, enforcing access control across services in a <a href="/radar/techniques/service-mesh">service mesh</a> and implementing fine-grained <a href="/radar/techniques/security-policy-as-code">security policy as code</a> for accessing application resources. While there is some complexity associated with OPA implementations, it has proven to be a highly valuable tool for ensuring <a href="https://martinfowler.com/articles/devops-compliance.html#change-compliance">compliance in a DevOps culture</a>. We’re also continuing to keep an eye on the extension and maturity of OPA beyond operational systems to (big) data-centric solutions.</p>
Philips's self-hosted GitHub runner Trial Tools FALSE moved in <p>While <a href="/radar/platforms/github-actions">GitHub Actions</a> runners cover a wide range of the most common run times and are quickest to start with, teams sometimes need to manage self-hosted runners, such as when organizational policy only allows deployments to a privately hosted infrastructure from within the organization's own security perimeter. In such cases, teams can use <strong>Philips's <a href="https://github.com/philips-labs/terraform-aws-github-runner">self-hosted GitHub runner</a></strong>, a Terraform module that spins up custom runners on AWS EC2 spot instances. The module also creates a set of Lambdas that handles lifecycle management (scaling up and down) for these runners. In our experience, this tool greatly simplifies the provisioning and management of self-hosted GitHub Actions runners. An alternative for teams that use Kubernetes is <a href="/radar/tools/actions-runner-controller">actions-runner-controller</a>.</p>
Pop Trial Tools TRUE new <p>Pair programming continues to be an essential technique for us, because it helps improve code quality and spread knowledge within a team. Although it’s best done in person, our distributed teams have explored tools to make remote pairing as pleasant and effective as possible, such as <a href="/radar/tools/tuple">Tuple</a>, <a href="/radar/tools/visual-studio-live-share">Visual Studio Live Share</a>, <a href="/radar/tools/code-with-me">Code With Me</a> and general-purpose chat and conferencing tools. The latest tool in the space that's caught our attention is <strong><a href="https://pop.com/">Pop</a></strong> (formerly Screen). Coming from the founders of Screenhero, it supports multi-person screen sharing, annotations and high-quality audio/video. Some of our teams have used it extensively for pair programming and remote working sessions and report positively on their experience.</p>
Renovate Trial Tools TRUE new <p>Automatically monitoring and updating dependencies as part of the software build process has become standard practice across the industry. It takes the guesswork out of staying current with security updates to open-source packages as they're released. For many years, <a href="/radar/tools/dependabot">Dependabot</a> has been the standard tool for this practice, but <strong><a href="https://www.mend.io/renovate/">Renovate</a></strong> has become the preferred tool for many of our teams. They find that Renovate is more suitable to the modern software development environment where a deployable system relies not just on code and libraries but encompasses run-time tools, infrastructure and third-party services. Renovate covers dependencies on these ancillary artifacts in addition to code. Our teams also found that Renovate offers more flexibility through configuration and customization options. Although Dependabot remains a safe default choice and is conveniently integrated with GitHub, we'd recommend evaluating Renovate to see if it can further reduce the manual burden on developers to keep their application ecosystems safe and secure.</p>
Terrascan Trial Tools TRUE new <p><strong><a href="https://github.com/tenable/terrascan">Terrascan</a></strong> is a static code analyzer for <a href="/radar/techniques/infrastructure-as-code">infrastructure as code</a> (IaC) designed to detect security vulnerabilities and compliance issues before provisioning cloud-native infrastructure. It supports scanning for <a href="/radar/tools/terraform">Terraform</a>, <a href="/radar/platforms/kubernetes">Kubernetes</a> (JSON/YAML), <a href="/radar/tools/helm">Helm</a>, AWS CloudFormation, Azure Resource Manager, Dockerfiles and GitHub. The <a href="https://runterrascan.io/docs/policies/">default policy pack</a> covers all the major cloud providers, GitHub, Docker and Kubernetes. Our teams use Terrascan locally as a pre-commit hook and integrate it into CI pipelines to detect IaC vulnerabilities and violations.</p>
Velero Trial Tools TRUE new <p><strong><a href="https://velero.io/">Velero</a></strong> is an open-source tool for backing up and restoring Kubernetes resources and persistent volumes. It simplifies disaster recovery and cluster migrations by enabling on-demand and scheduled backups. Velero also allows finer-grained controls over which resources get backed up as well as over the backup/restore workflow (with hooks). Our teams appreciate its ease of use and its reliance on Kubernetes APIs instead of lower-level layers like <a href="https://etcd.io/">etcd</a>.</p>
aider Assess Tools TRUE new <p><strong><a href="https://github.com/paul-gauthier/aider">aider</a></strong> is an open-source AI coding assistant. Like many open-source tools in this space, aider doesn’t have direct IDE integration but is started as a CLI in the terminal. aider is interesting because it provides a chat interface with write access to the codebase across multiple files, whereas many of the coding assistant products today either only read the code or can change only one file at a time. This allows aider to help you implement concepts that stretch over multiple files (e.g.,"add locators to my HTML and also use those in my functional test") and to create new files and folder structures in the codebase (e.g.,"create a new component similar to the one in folder X"). As aider is open source and not a hosted product, you have to bring your own OpenAI or Azure OpenAI API key to use it. On the one hand, this can be great for occasional use because you only have to pay per use. On the other hand, aider does seem to be quite chatty in its interactions with the AI API, so keep an eye on request costs and rate limits when using it.</p>
Akvorado Assess Tools TRUE new <p><strong><a href="https://github.com/akvorado/akvorado">Akvorado</a></strong> is an open-source network monitoring and analysis tool. It captures the network flows, Netflow/IPFIX and sFlow, enriches them with interface names and geo information and then saves the updated flows in <a href="/radar/platforms/clickhouse">ClickHouse</a> for future analysis. Although <a href="/radar/languages-and-frameworks/opentelemetry">OpenTelemetry</a> is gaining adoption for observing application-level traffic, we often come across challenges in the network layer that can be difficult to spot and troubleshoot. Tools like Akvorado are quite handy in such situations as they help you analyze the network flows across various devices in the network topology.</p>
Baichuan 2 Assess Tools TRUE new <p><strong><a href="https://github.com/baichuan-inc/Baichuan2/blob/main/README_EN.md">Baichuan 2</a></strong> is part of a new generation of open-source large language models. It was trained on a high-quality corpus with 2.6 trillion tokens, achieving quite good performance for its size on Chinese, English and multi-language benchmarks. Baichuan has been trained on several domain-specific corpora, including healthcare and law data sets, which is why we prefer using it in these and related fields.</p>
Cargo Lambda Assess Tools TRUE new <p>The efficiency and performance of <a href="/radar/languages-and-frameworks/rust">Rust</a> make it a good fit for serverless computing. Another advantage is that Rust functions don’t require a run time, which results in fast startup times. However, the developer experience for writing the functions in Rust wasn’t great. That changed with <strong><a href="https://www.cargo-lambda.info/">Cargo Lambda</a></strong>. As a cargo subcommand, it integrates with the typical Rust workflow and allows you to run and test your <a href="/radar/platforms/aws-lambda">AWS Lambda</a> functions on the developer machine without needing <a href="/radar/platforms/docker">Docker</a>, VMs or other tools. Using a <a href="/radar/languages-and-frameworks/zig/">Zig</a> toolchain, Cargo Lambda can cross-compile the functions on several operating systems for the Linux sandboxes used by AWS Lambda, and both Arm and Intel are supported as target architectures.</p>
Codium AI Assess Tools TRUE new <p>In the busy emerging space of AI coding assistants, some products, instead of competing with the strong incumbents, take a more focused approach. <strong><a href="https://www.codium.ai/">Codium AI</a></strong> is focused on test generation with AI. It works for all languages but has advanced support for common stacks, such as JavaScript and Python. We particularly like that the tool, rather than taking developers straight to the test code, offers a list of scenario descriptions in natural language for review. This makes it easier for developers to reason about the scenarios and decide which ones to turn into test code. To further improve the test generation for a particular codebase and use case, users can provide example tests and general instructions to enhance the information used by the AI to generate the tests.</p>
Continue Assess Tools TRUE new <p><strong><a href="https://github.com/continuedev/continue">Continue</a></strong> is an open-source autopilot for VS Code and JetBrains IDEs. We quite like it because it eliminates the pain of copying/pasting from a chat-based interface to large language models (LLMs) with a direct integration in the IDE. It supports several commercial and open-source <a href="https://continue.dev/docs/model-setup/select-model">models</a> and makes it easy to try different LLM <a href="https://continue.dev/docs/model-setup/select-provider">providers</a>, including <a href="/radar/techniques/self-hosted-llms">self-hosted LLMs</a>. You can even run Continue <a href="https://continue.dev/docs/walkthroughs/running-continue-without-internet">without an internet connection</a>.</p>
Fern Docs Assess Tools TRUE new <p>One hallmark of widely used REST APIs is that their contracts are thoroughly documented. Developers are more likely to adopt and use APIs whose behavior and syntax are described accurately in a structured, organized way. Keeping this documentation up to date as the contract evolves can be time-consuming and is a task that is easily overlooked. <strong><a href="https://buildwithfern.com/#docs">Fern Docs</a></strong> helps with this by reducing the toil involved in writing and maintaining API documentation. Fern automatically generates a website with attractive, usable documentation from a specification file that can be versioned alongside the API code. While our initial impressions of this product are positive, Fern does require you to maintain API information in a proprietary configuration file. While it provides a way to convert OpenAPI specs into its own configuration format, we'd prefer a tool that generates docs directly from annotated source code.</p>
Granted Assess Tools TRUE new <p>Given how common multi-account strategy is in organizations' AWS environments, engineers frequently have to switch between multiple accounts within a short period of time. <strong><a href="https://github.com/common-fate/granted">Granted</a></strong>, a command-line tool that simplifies the opening of multiple accounts in the browser simultaneously, streamlines account switching. It leverages each browser's native features to isolate multiple identities, Firefox's <a href="https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/">Multi-Account Containers</a> and <a href="https://support.google.com/chrome/answer/2364824">Chromium's Profiles</a>. If a specific service (such as S3) is specified as an argument, Granted will open the service's landing page. Granted currently only supports AWS. Notably, it stores AWS SSO's temporary credentials safely in the keychain rather than as plain text on the disk.</p>
LinearB Assess Tools TRUE new <p><strong><a href="https://linearb.io/">LinearB</a></strong> is a platform designed to empower engineering leaders with data-driven insights for continuous improvement. It tackles three key areas: benchmarking, workflow automation and investment. Our experience with LinearB's metrics tooling highlights its potential to support a culture of continuous improvement. One of our teams leveraged the platform to track engineering metrics, identify and discuss improvement opportunities and define actionable steps based on data, leading to measurable progress. We're happy to see that this aligns with LinearB's core value proposition: benchmark, automate and improve. LinearB integrates with GitHub, GitLab, Bitbucket and Jira. It offers a comprehensive suite of preconfigured engineering metrics, with a strong focus on <a href="/radar/techniques/four-key-metrics">DORA metrics</a> (deployment frequency, lead time, change failure rate and time to restore). As strong advocates of the four key metrics as defined by the DORA research, we appreciate LinearB's emphasis on measuring what truly matters for software delivery performance. Historically, gathering DORA-specific metrics has been a challenge. Teams have resorted to complex CD pipeline instrumentation, custom-built dashboards or rely on manual processes. Although our experience is limited to one team, LinearB seems to be a compelling alternative for gathering and tracking engineering metrics as well as fostering a data-driven approach to continuous improvement.</p>
LLaVA Assess Tools TRUE new <p><strong><a href="https://github.com/haotian-liu/LLaVA">LLaVA (Large Language and Vision Assistant)</a></strong> is an open-source, large multimodal model that connects a vision encoder and LLM for general-purpose visual and language understanding. LLaVA's strong proficiency in instruction-following positions it as a highly competitive contender among multimodal AI models. The latest version, <a href="https://llava-vl.github.io/blog/2024-01-30-llava-next/">LLaVA-NeXT</a>, allows for improved question answering. Among the open-source models for language and vision assistance, LLaVA is a promising option when <a href="https://encord.com/blog/gpt-vision-vs-llava/">compared to GPT-4 Vision</a>. Our teams have been experimenting with it for visual question answering.</p>
Marimo Assess Tools TRUE new <p><strong><a href="https://marimo.io/">Marimo</a></strong> offers a fresh take on Python notebooks by prioritizing reproducibility and interactivity. It addresses challenges with hidden state in traditional notebooks (like <a href="/radar/tools/jupyter">Jupyter</a>) which can lead to unexpected behavior and hinder reproducibility. It does that by storing notebooks as plain Python files with no hidden state and using a deterministic execution order based on dependencies (when a variable changes, all affected cells are automatically run). Marimo also comes with interactive UI elements that similarly propagate value changes to cells that depend on them. As it can be deployed as a web app, it’s also a useful tool for demos and prototyping purposes. Although we’re excited for the potential of Marimo, in particular in terms of reproducibility for data exploration and analysis purposes, we continue to caution against <a href="/radar/techniques/productionizing-notebooks">productionizing notebooks</a>.</p>
Mixtral Assess Tools TRUE new <p><strong><a href="https://docs.mistral.ai/models/#mixtral-8x7b">Mixtral</a></strong> is part of <a href="https://docs.mistral.ai/models/">the family of open-weight large language models</a> <a href="https://mistral.ai/">Mistral</a> released, that utilizes the <a href="https://mistral.ai/news/mixtral-of-experts/">sparse Mixture of Experts architecture</a>. The family of models are available both in raw pretrained and fine-tuned forms in 7B and 8x7B parameter sizes. Its sizes, open-weight nature, performance in benchmarks and context length of 32,000 tokens make it a compelling option for <a href="/radar/techniques/self-hosted-llms">self-hosted LLMs</a>. Note that these open-weight models are not tuned for safety out of the box, and users need to refine moderation based on their own use cases. We have experience with this family of models in developing <a href="https://huggingface.co/opennyaiorg/Aalap-Mistral-7B-v0.1-bf16">Aalap</a>, a fine-tuned Mistral 7B model trained on data related to specific Indian legal tasks, which has performed <a href="https://huggingface.co/opennyaiorg/Aalap-Mistral-7B-v0.1-bf16#what-is-aalaps-intended-uses">reasonably well</a> on an affordable cost basis.</p>
NeMo Guardrails Assess Tools TRUE new <p><strong><a href="https://github.com/NVIDIA/NeMo-Guardrails">NeMo Guardrails</a></strong> is an easy-to-use open-source toolkit from NVIDIA that empowers developers to implement guardrails for large language models (LLMs) used in conversational applications. Although LLMs hold immense potential in building interactive experiences, their inherent limitations around factual accuracy, bias and potential misuse necessitate safeguards. Guardrails offer a promising approach to ensure responsible and trustworthy LLMs. Although you have a choice when it comes to LLM guardrails, our teams have found NeMo Guardrails particularly useful because it supports programmable rules and run-time integration and can be applied to existing LLM applications without extensive code modifications.</p>
Ollama Assess Tools TRUE new <p><strong><a href="https://github.com/ollama/ollama">Ollama</a></strong> is an open-source tool for running and managing large language models (LLMs) on your local machine. Previously, we talked about the benefits of <a href="/radar/techniques/self-hosted-llms">self-hosted LLMs</a>, and we’re pleased to see the ecosystem mature with tools like Ollama. It supports several <a href="https://ollama.com/library">popular models</a> — including <a href="/radar/tools/llama-2">LLaMA-2</a>, CodeLLaMA, Falcon and Mistral — that you can download and run locally. Once downloaded, you can use the CLI, API or SDK to interact with the model and execute your tasks. We're evaluating Ollama and are seeing early success as it improves the developer experience in working with LLMs locally.</p>
OpenTofu Assess Tools TRUE new <p><strong><a href="https://opentofu.org/">OpenTofu</a></strong> is a fork of <a href="/radar/tools/terraform">Terraform</a> made in response to a recent ambiguous license change by HashiCorp. It's open source and has been accepted by the Linux Foundation. It's backed by several organizations, including third-party vendors. The current version is compatible with the last open-source version of Terraform. Version 1.7 adds client-side encryption. The future of the OpenTofu project is unclear in terms of how closely it will support compatibility with future versions of Terraform. There are also questions around the long-term support by its current backers. We recommend keeping an eye on the project but remain cautious around usage, except for teams that have the capability to manage risks that may include being able to contribute to the codebase.</p>
QAnything Assess Tools TRUE new <p>Large language models (LLMs) and <a href="/radar/techniques/retrieval-augmented-generation-rag">retrieval-augmented generation (RAG)</a> techniques have greatly improved our ability to synthesize and extract information. We’re seeing emerging tools taking advantage of this, and <strong><a href="https://github.com/netease-youdao/QAnything/tree/master">QAnything</a></strong> is one of them. QAnything is a knowledge management engine with a question-and-answer interface that can summarize and extract information from a wide range of file formats, including PDF, DOCX, PPTX, XLSX and MD files, among others. For data security concerns, QAnything also supports offline installation. Some of our teams use QAnything to build their team knowledge base. In GenAI scenarios with more industry depth (such as generating abstracts for investment reports), we also try to use this tool for proofs of concept before building real products and showing the potential of LLMs and RAG.</p>
System Initiative Assess Tools TRUE new <p>Little has emerged in recent years to challenge the dominance of <a href="/radar/tools/terraform">Terraform</a> as an <a href="/radar/techniques/infrastructure-as-code">infrastructure coding</a> tool. Although alternatives such as <a href="/radar/platforms/pulumi">Pulumi</a>, <a href="/radar/platforms/aws-cloud-development-kit">CDK</a> and, more recently, <a href="/radar/platforms/winglang">Wing</a> have emerged, Terraform's modular, declarative paradigm has proven to be the most enduring. Indeed, all of these approaches share the common goal of modular code creating monolithic infrastructure. <strong><a href="https://www.systeminit.com/">System Initiative</a></strong> is a new, experimental tool that represents a radical new direction for DevOps work. One way to view System Initiative is as a digital twin for your infrastructure. Interactive changes to the System Initiative state result in corresponding change sets that can be applied to the infrastructure itself. Likewise, changes to the infrastructure are reflected in the System Initiative state. One of the great advantages of this approach is the collaborative environment it creates for things like application deployment and observability. Engineers interact with System Initiative through a user interface that has a graphical representation of the entire environment. In addition to managing the cloud infrastructure, you can also use the tool to manage containers, scripts, tools and more. Although we're generally skeptical of these kinds of GUI tools, System Initiative can be extended to handle new assets or enforce policy via TypeScript code. We really like the creative thinking that has gone into this tool and hope it will encourage others to break with the status quo of infrastructure-as-code approaches. System Initiative is free and open source under an Apache 2.0 license and is currently in open beta. The maintainers themselves do not recommend the tool for production use yet, but we think it’s worth checking out in its current state to experience a completely different approach to DevOps tooling.</p>
Tetragon Assess Tools TRUE new <p><strong><a href="https://github.com/cilium/tetragon/">Tetragon</a></strong> is an open-source eBPF-based security observability and run-time enforcement tool. We mentioned <a href="/radar/tools/falco">Falco</a> for detecting security threats a while back in the Radar. Tetragon goes beyond threat detection by leveraging eBPF to <a href="https://tetragon.io/docs/concepts/enforcement/">enforce security policies</a> at run time in the Linux kernel. You can use Tetragon either as a standalone tool on bare metal or inside the <a href="/radar/platforms/kubernetes">Kubernetes</a> environment.</p>
Winglang Assess Tools TRUE new <p>We’re seeing a lot of movement in the <a href="/radar/techniques/infrastructure-as-code">infrastructure-as-code (IaC)</a> space with tools like <strong><a href="https://www.winglang.io/">Winglang</a></strong> emerging. Winglang takes a different approach to defining infrastructure and run-time behavior. It provides high-level abstractions over platform specifics provided by tools such as <a href="https://aws.amazon.com/cloudformation/">CloudFormation</a>, <a href="/radar/tools/terraform">Terraform</a>, <a href="/radar/platforms/pulumi">Pulumi</a> and <a href="/radar/platforms/kubernetes">Kubernetes</a>. With Winglang, you write code that runs at compile time to generate infrastructure configuration and then code that executes at run time for application behavior. It provides a simulation mode to run locally and has an integrated test framework. We’re keeping an eye on this interesting tool; it’s a potential preview of the future direction of IaC.</p>
Astro Trial languages-and-frameworks FALSE moved in <p>The <strong><a href="https://astro.build/">Astro</a></strong> framework is gaining more popularity in the community. One of our teams has used Astro to build content-driven websites like blogs and marketing websites. Astro is a multi-page application framework that renders HTML on the server and minimizes the amount of JavaScript sent over the wire. We like that Astro supports — when appropriate — select active components written in the front-end JavaScript framework of your choice even though it encourages sending only HTML. It does this through its <a href="https://docs.astro.build/en/concepts/islands/">island architecture</a>. Islands are regions of interactivity within a single page where the necessary JavaScript is downloaded only when needed. In this way, most areas of the site are converted to fast, static HTML, and the JavaScript parts are optimized for parallel loading. Our team likes both its page rendering performance as well as its build speed. The <a href="https://docs.astro.build/en/basics/astro-syntax/">Astro component syntax</a> is a simple extension of HTML, and the learning curve is quite gentle.</p>
DataComPy Trial languages-and-frameworks TRUE new <p>Comparing DataFrames is a common task in data engineering, often done to compare the output of two data transformation approaches to make sure no meaningful deviations or inconsistencies have occurred. <strong><a href="https://github.com/capitalone/datacompy">DataComPy</a></strong> is a Python library that facilitates the comparison of two DataFrames in pandas, Spark and more. The library goes beyond basic equality checks by providing detailed insights into discrepancies at both row and column levels. DataComPy also has the ability to specify absolute or relative tolerance for comparison of numeric columns as well as known differences it need not highlight in its report. Some of our teams use it as part of their smoke testing suite; they find it efficient when comparing large and wide DataFrames and consider its reports easy to understand and act upon.</p>
Pinia Trial languages-and-frameworks TRUE new <p><strong><a href="https://pinia.vuejs.org/">Pinia</a></strong> is a store library and state management framework for <a href="/radar/languages-and-frameworks/vue-js">Vue.js</a>. It uses declarative syntax and offers its own state management API. Compared to <a href="https://vuex.vuejs.org/">Vuex</a>, Pinia provides a simpler API with less ceremony, offers Composition-style APIs and, most importantly, has solid type inference support when used with <a href="/radar/languages-and-frameworks/typescript">TypeScript</a>. Pinia is endorsed by the Vue.js team as a credible alternative to Vuex and is currently the official state management library for Vue.js. Our teams are leveraging Pinia for its simplicity and ease of implementation.</p>
Ray Trial languages-and-frameworks TRUE new <p>Today's machine learning (ML) workloads are increasingly compute-intensive. As convenient as they are, single-node development environments such as your laptop cannot scale to meet these demands. <strong><a href="https://github.com/ray-project/ray">Ray</a></strong> is a unified framework for scaling AI and Python code from laptop to cluster. Ray is essentially a well-encapsulated distributed computing framework with a series of AI libraries to simplify ML work. By integrating with other frameworks (e.g., <a href="/radar/languages-and-frameworks/pytorch">PyTorch</a> and <a href="/radar/languages-and-frameworks/tensorflow">TensorFlow</a>), it can be used to build large-scale ML platforms. Companies like OpenAI and Bytedance use Ray heavily for model training and inference. We also use its AI libraries to help with <a href="https://docs.ray.io/en/latest/train/train.html">distributed training</a> and <a href="https://docs.ray.io/en/latest/tune/index.html">hyperparameter tuning</a> on our projects. We recommend you try Ray when building scalable ML projects.</p>
Android Adaptability Assess languages-and-frameworks TRUE new <p>Some mobile applications and games can be so demanding they cause thermal throttling within a few minutes. In this state, CPU and GPU frequency are reduced to help cool the device, but it also results in reduced frame rates in games. When the thermal situation improves, the frame rates increase again and the cycle repeats, leading to the software feeling janky. <strong><a href="https://developer.android.com/codelabs/adaptability-codelab">Android Adaptability</a></strong>, a new set of libraries, allows application developers to respond to changing performance and thermal situations. The <a href="https://developer.android.com/games/optimize/adpf">Android Dynamic Performance Framework (ADPF)</a> includes the Thermal API to provide information about the thermal state and the Hint API to help Android choose the optimal CPU operating point and core placement. Teams using Unity will find the Unity Adaptive Performance package helpful, as it works with both APIs.</p>
Concrete ML Assess languages-and-frameworks TRUE new <p>Previously, we blipped the <a href="/radar/techniques/homomorphic-encryption">Homomorphic Encryption</a> technique that allows computations to be performed directly on encrypted data. <strong><a href="https://github.com/zama-ai/concrete-ml">Concrete ML</a></strong> is one such open-source tool that allows for privacy-preserving machine learning. Built on top of <a href="https://github.com/zama-ai/concrete">Concrete</a>, it simplifies the use of fully homomorphic encryption (FHE) for data scientists to help them automatically turn machine learning models into their homomorphic equivalent. Concrete ML's built-in models have APIs that are almost identical to their scikit-learn counterparts. You can also convert <a href="/radar/languages-and-frameworks/pytorch">PyTorch</a> networks to FHE with Concrete ML's conversion APIs. Note, however, that FHE with Concrete ML could be slow without <a href="https://www.intel.com/content/www/us/en/developer/articles/technical/homomorphic-encryption/accelerating-homomorphic-encryption-for-fpga.html">tuned hardware</a>.</p>
Crabviz Assess languages-and-frameworks TRUE new <p><strong><a href="https://github.com/chanhx/crabviz">Crabviz</a></strong> is a <a href="/radar/tools/visual-studio-code">Visual Studio Code</a> plug-in to create call graphs. The graphs are interactive, which is essential when working with even moderately large codebases such as a microservice. They show types, methods, functions and interfaces grouped by file and also display function calling relationships and interface implementation relationships. Because Crabviz is based on the <a href="/radar/platforms/language-server-protocol">Language Server Protocol</a>, it supports any number of languages, as long as the corresponding language server is installed. This means, though, that Crabviz is limited to static code analysis, which might not be sufficient for some use cases. The plug-in is written in <a href="/radar/languages-and-frameworks/rust">Rust</a> and is available on the Visual Studio Code Marketplace.</p>
Crux Assess languages-and-frameworks TRUE new <p><strong><a href="https://github.com/redbadger/crux">Crux</a></strong> is an open-source cross-platform app development framework written in Rust. Inspired by the Elm architecture, Crux organizes business logic code at the core and UI layer in native frameworks like <a href="/radar/languages-and-frameworks/swiftui">SwiftUI</a>, <a href="/radar/languages-and-frameworks/jetpack-compose">Jetpack Compose</a>, <a href="/radar/languages-and-frameworks/react-js">React</a>/<a href="/radar/languages-and-frameworks/vue-js">Vue</a> or <a href="/radar/languages-and-frameworks/webassembly">WebAssembly</a>-based frameworks (like <a href="https://github.com/yewstack/yew">Yew</a>). With Crux, you can write side effects–free behavior code in Rust and share it across iOS, Android and the web.</p>
Databricks Asset Bundles Assess languages-and-frameworks TRUE new <p>The recent <a href="https://www.databricks.com/blog/announcing-public-preview-databricks-asset-bundles-apply-software-development-best-practices">public preview release</a> of <a href="https://docs.databricks.com/en/dev-tools/bundles/index.html">Databricks Asset Bundles</a> (DABs), included with <a href="https://docs.databricks.com/en/dev-tools/cli/install.html">Databricks CLI version 0.205 and above</a>, is becoming the officially recommended way to package Databricks assets for source control, testing and deployment. It has started to replace <a href="https://dbx.readthedocs.io/en/latest/intro/">dbx</a> among our teams. DABs supports packaging the configuration of workflows, jobs and tasks, as well as the code to be executed in those tasks, as a bundle that can be deployed to multiple environments. It comes with templates for common types of assets and supports custom templates. While DABs includes templates for notebooks and supports deploying them to production, we continue to recommend against <a href="/radar/techniques/productionizing-notebooks">productionizing notebooks</a> and instead encourage intentionally writing production code with the engineering practices that support the maintainability, resiliency and scalability needs of such workloads.</p>
Electric Assess languages-and-frameworks TRUE new <p><strong><a href="https://github.com/electric-sql/electric">Electric</a></strong> is a <a href="/radar/techniques/local-first-application">local-first</a> sync framework for mobile and web applications. Local-first is a development paradigm where your application code talks directly to an embedded local database and data syncs in the background via an active-active database replication to the central database. With Electric, you have SQLite as the local embedded option and PostgreSQL for the central store. Although local-first greatly improves user experience, it is not without challenges, and the inventors of <a href="https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type">CRDT</a> have worked on the Electric framework to ease the pain.</p>
LiteLLM Assess languages-and-frameworks TRUE new <p><strong><a href="https://github.com/BerriAI/litellm">LiteLLM</a></strong> is a library for seamless integration with various large language model (LLM) providers' APIs that standardizes interactions through an <a href="https://platform.openai.com/docs/guides/text-generation/chat-completions-api">OpenAI API format</a>. It supports an extensive array of <a href="https://docs.litellm.ai/docs/providers">providers and models</a> and offers a unified interface for completion, embedding and image generation functionalities. LiteLLM simplifies integration by translating inputs to match each provider's specific endpoint requirements. This is particularly valuable in the current landscape, where a lack of standardized API specifications for LLM providers complicates the inclusion of multiple LLMs in projects. Our teams have leveraged LiteLLM to swap underlying models in LLM applications, addressing a significant integration challenge. However, it's crucial to acknowledge that model responses to identical prompts vary, indicating that a consistent invocation method alone may not fully optimize completion performance. Note that LiteLLM has several other features, such as <a href="https://docs.litellm.ai/docs/proxy/quick_start">proxy server</a>, that are not in the purview of this blip.</p>
LLaMA-Factory Assess languages-and-frameworks TRUE new <p>We continue to caution against <a href="/radar/techniques/rush-to-fine-tune-llms">rushing to fine-tune large language models (LLMs)</a> unless it’s absolutely critical — it comes with a significant overhead in terms of costs and expertise. However, we think <strong><a href="https://github.com/hiyouga/LLaMA-Factory">LLaMA-Factory</a></strong> can be useful when fine-tuning is needed. It’s an open-source, easy-to-use fine-tuning and training framework for LLMs. With support for <a href="/radar/tools/llama-2">LLaMA</a>, BLOOM, <a href="/radar/tools/mixtral">Mistral</a>, <a href="/radar/tools/baichuan-2">Baichuan</a>, Qwen and <a href="/radar/platforms/chatglm">ChatGLM</a>, it makes a complex concept like fine-tuning relatively accessible. Our teams used <a href="https://github.com/hiyouga/LLaMA-Factory?tab=readme-ov-file#supported-training-approaches">LLaMA-Factory's LoRA tuning</a> for a LLaMA 7B model successfully, so, if you have a need for fine-tuning, this framework is worth assessing.</p>
MLX Assess languages-and-frameworks TRUE new <p><strong><a href="https://github.com/ml-explore/mlx">MLX</a></strong> is an open-source array framework designed for efficient and flexible machine learning on Apple silicon. It lets data scientists and machine learning (ML) engineers access the integrated GPU, allowing them to choose the hardware best suited for their needs. The design of MLX is inspired by frameworks like NumPy, <a href="/radar/languages-and-frameworks/pytorch">PyTorch</a> and Jax to name a few. One of the key differentiators is MLX's unified memory model, which eliminates the overhead of data transfers between the CPU and GPU, resulting in faster execution. This feature makes running the models on devices such as iPhones plausible, opening a huge opportunity for on-device AI applications. Although niche, this framework is worth pursuing for the ML developer community.</p>
Mojo Assess languages-and-frameworks TRUE new <p><strong><a href="https://www.modular.com/max/mojo">Mojo</a></strong> is a new AI-first programming language. It aims to bridge the gap between research and production by combining the Python syntax and ecosystem with systems programming and metaprogramming features. It’s the first language to take advantage of the new <a href="https://mlir.llvm.org/">MLIR</a> compiler backend and packs cool features like zero-cost abstraction, auto tuning, eager destruction, tail call optimization and better single instruction, multiple data (SIMD) ergonomics. We like Mojo a lot and encourage you to give it a try. The Mojo SDK is currently available for Ubuntu and macOS operating systems.</p>
Otter Assess languages-and-frameworks TRUE new <p><strong><a href="https://github.com/maypok86/otter">Otter</a></strong> is a contention-free cache library in Go. Although Go has several such libraries, we want to highlight Otter for two reasons: its excellent <a href="https://github.com/maypok86/otter#throughput">throughput</a> and its clever implementation of the S3-FIFO algorithm for good cache hit ratio. Otter also supports generics, so you can use any comparable types as keys and any types as values.</p>
Pkl Assess languages-and-frameworks TRUE new <p><strong><a href="https://pkl-lang.org/">Pkl</a></strong> is a configuration language and tooling created for use internally by Apple and now open-sourced. The key feature of Pkl is its type and validation system, allowing configuration errors to be caught prior to deployment. It generates JSON, .plist, YAML and .properties files and has extensive IDE and language integration including code generation.</p>
Rust for UI Assess languages-and-frameworks TRUE new <p>The impact of <a href="/radar/languages-and-frameworks/rust">Rust</a> continues to grow, and many of the build and command-line tools we’ve covered recently are written in Rust. Now, we’re seeing movement in using <strong>Rust for UI</strong> development as well. The majority of teams who prefer to use the same language for code running in the browser and on the server opt to use JavaScript or TypeScript. However, with <a href="/radar/languages-and-frameworks/webassembly">WebAssembly</a> you can use Rust in the browser, and this is becoming a little more common now. Frameworks like <a href="https://leptos.dev/">Leptos</a> and <a href="https://github.com/ivanceras/sauron">sauron</a> focus on web development, while <a href="https://dioxuslabs.com/">Dioxus</a> and several other frameworks support cross-platform desktop and mobile app development in addition to web development.</p>
vLLM Assess languages-and-frameworks TRUE new <p><strong><a href="https://github.com/vllm-project/vllm">vLLM</a></strong> is a high-throughput and memory-efficient inferencing and serving engine for large language models (LLMs) that’s particularly effective thanks to its implementation of <a href="https://www.anyscale.com/blog/continuous-batching-llm-inference">continuous batching</a> for incoming requests. It supports several <a href="https://docs.vllm.ai/en/latest/serving/distributed_serving.html#">deployment options</a>, including deployment of distributed tensor-parallel inference and serving with <a href="/radar/languages-and-frameworks/ray">Ray</a> run time, deployment in the cloud with <a href="https://github.com/skypilot-org/skypilot">SkyPilot</a> and deployment with NVIDIA Triton, <a href="/radar/platforms/docker">Docker</a> and <a href="/radar/languages-and-frameworks/langchain">LangChain</a>. Our teams have had good experience running dockerized vLLM workers in an on-prem virtual machine, integrating with OpenAI compatible API server -— which, in turn, is leveraged by a range of applications, including IDE plugins for coding assistance and chatbots. Our teams leverage vLLM for running models such as <a href="https://huggingface.co/codellama/CodeLlama-70b-hf">CodeLlama 70B</a>, <a href="https://huggingface.co/codellama/CodeLlama-7b-hf">CodeLlama 7B</a> and <a href="/radar/tools/mixtral">Mixtral</a>. Also notable is the engine’s scaling capability: it only takes a couple of config changes to go from running a 7B to a 70B model. If you’re looking to productionize LLMs, vLLM is worth exploring.</p>
Voyager Assess languages-and-frameworks TRUE new <p><strong><a href="https://voyager.adriel.cafe/">Voyager</a></strong> is a navigation library built for Android's <a href="/radar/languages-and-frameworks/jetpack-compose">Jetpack Compose</a>. It supports several navigation types, including Linear, BottomSheet, Tab and Nested, and its screen model integrates with popular frameworks like <a href="/radar/languages-and-frameworks/koin">Koin</a> and <a href="/radar/languages-and-frameworks/jetpack-hilt">Hilt</a>. When using Jetpack Compose in a multiplatform project, Voyager is a good choice to implement a common navigation pattern across all supported platforms. Development on Voyager has picked up again and the library reached version 1.0 in December 2023.</p>
WGPU Assess languages-and-frameworks TRUE new <p><strong><a href="https://wgpu.rs/">wgpu</a></strong> is a graphics library for <a href="/radar/languages-and-frameworks/rust">Rust</a> based on the WebGPU API, notable for its capacity to handle general-purpose graphics and compute tasks on the GPU efficiently. wgpu aims to fill the gap left by the phasing out of older graphics standards such as OpenGL and WebGL. It introduces a modern approach to graphics development that spans both native applications and web-based projects. Its integration with <a href="/radar/languages-and-frameworks/webassembly">WebAssembly</a> further enables graphics and compute applications to run in the browser. wgpu represents a step forward in making advanced graphics programming more accessible to web developers with a range of applications, from gaming to creating sophisticated web animations, positioning wgpu as an exciting technology to assess.</p>
Zig Assess languages-and-frameworks FALSE no change <p><strong><a href="https://ziglang.org/">Zig</a></strong> is a new language that shares many attributes with C but with stronger typing, easier memory allocation and support for namespacing, among a host of other features. Zig's aim is to provide a very simple language with straightforward compilation that minimizes side-effects and delivers predictable, easy-to-trace execution. Zig also provides simplified access to <a href="https://llvm.org/">LLVM's cross-compilation capability</a>. Some of our developers have found this feature so valuable they're using Zig as a cross-compiler, even though they’re not writing Zig code. We see teams in the industry using Zig to help build C/C++ toolchains. Zig is a novel language and worth looking into for applications where C is being considered or already in use.</p>
LangChain Hold languages-and-frameworks FALSE moved out <p>We mentioned some of the emerging criticisms about <strong><a href="https://www.langchain.com/">LangChain</a></strong> in the previous Radar. Since then, we’ve become even more wary of it. While the framework offers a powerful set of features for building applications with large language models (LLMs), we’ve found it to be hard to use and overcomplicated. LangChain gained early popularity and attention in the space, which turned it into a default for many developers. However, as LangChain is trying to evolve and keep up with the fast pace of change, it has become harder and harder to navigate those changes of concepts and patterns as a developer. We’ve also found the API design to be inconsistent and verbose. As such, it often obscures what is actually going on under the hood, making it hard for developers to understand and control how LLMs and the various patterns around them actually work. We’re moving LangChain to the Hold ring to reflect this. In many of our use cases, we’ve found that an implementation with minimum use of specialized frameworks is sufficient. Depending on your use case, you may also want to consider other frameworks such as <a href="/radar/languages-and-frameworks/semantic-kernel">Semantic Kernel</a>, <a href="https://haystack.deepset.ai/">Haystack</a> or <a href="/radar/tools/litellm">LiteLLM</a>.</p>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment