DEV Community

Cover image for 9 must-know open-source libraries to future-proof yourself🎯
Sunil Kumar Dash for Composio

Posted on • Edited on

9 must-know open-source libraries to future-proof yourself🎯

I have been in software for the last 6-7 years, but things are changing faster than ever before. AI is fundamentally changing the way we write software.

You are no longer limited to the tech and frameworks you have been doing. Chatgpt has made it much easier to use any technology you want to build complex, performant, and future-proof apps.

I compiled a list of open-source repositories you can implement in your app to build future-proof apps.

Future is Now GIF


1. Composio: AI integration and tooling platform

AI is everywhere, and any modern app will need AI automation in some form in the future. Composio is the best alternative for adding AI workflows to your applications.
It provides integrations for over 100 third-party services, such as GitHub, Slack, Discord, Salesforce, and more. You can connect with AI models like GPT-4 and Gemini to automate tedious and repetitive work.

For instance,

  • You can build comprehensive agents to interact with users on Slack and Discord. Respond to queries, guide them through the support process, or schedule follow-up actions.
  • You can build Coding agents to automate bug fixing in GitHub from Jira tickets.
  • Build personal assistants to handle meetings and events.

Composio is very easy to get started with.

pip install composio-core
Enter fullscreen mode Exit fullscreen mode

Add a GitHub integration.

composio add github
Enter fullscreen mode Exit fullscreen mode

Composio handles user authentication and authorization on your behalf.

Here is how you can use the GitHub integration to star a repository.

from openai import OpenAI
from composio_openai import ComposioToolSet, App

openai_client = OpenAI(api_key="******OPENAIKEY******")

# Initialise the Composio Tool Set
composio_toolset = ComposioToolSet(api_key="**\\\\*\\\\***COMPOSIO_API_KEY**\\\\*\\\\***")

## Step 4
# Get GitHub tools that are pre-configured
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])

## Step 5
my_task = "Star a repo ComposioHQ/composio on GitHub"

# Create a chat completion request to decide on the action
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # Passing actions we fetched earlier.
messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": my_task}
  ]
)
Enter fullscreen mode Exit fullscreen mode

Run this Python script to execute the given instruction using the agent.

Composio works with famous frameworks like LangChain, LlamaIndex, CrewAi, etc.

For more information, visit the official docs, and for even more complex examples, see the repository's example sections.

Composio GIF

Star the Composio repository ⭐


2. Encore: Event-driven and distributed systems make easy

If you are a start-up looking for a back-end framework for building robust distributed applications, your search ends here.

Developing cloud applications can often become messy, with developers struggling to manage and coordinate resources efficiently.

Encore streamlines this process, making building scalable, event-driven systems easier without the usual complexity.

Encore simplifies this mess by providing a unified development platform integrating type-safe backend frameworks, automatic infrastructure provisioning, and DevOps automation.

It is available both in Golang and Typescript.

Get started with Encore by installing the CLI.

curl -L https://encore.dev/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Create an app.

encore app create
Enter fullscreen mode Exit fullscreen mode

This will configure your free account, allow you to choose your app's name, and select the Hello World template.

This will create a new folder with an example application and a simple REST API using your chosen app name.

Open the file in your editor.

// Service hello implements a simple hello world REST API.
package hello

import (
    "context"
)

// This simple REST API responds with a personalized greeting.
//
//encore:api public path=/hello/:name
func World(ctx context.Context, name string) (*Response, error) {
    msg := "Hello, " + name + "!"
    return &Response{Message: msg}, nil
}

type Response struct {
    Message string
}
Enter fullscreen mode Exit fullscreen mode

For more information, refer to their documentation.

Encore GIF

Star the Encore repository ⭐


3. AssemblyScript - Typescript-like language for WebAssembly

There is a growing trend in building applications for web assembly or WASM to offer a native experience on the web, especially for compute-heavy tasks like animation, games, editors, etc.

If you want to build similar applications, AssemblyScript can be a great choice.

It is a typescript-like language that compiles to WebAssembly using **Binaryen** instead of JS.

Its close association with JS/TS syntax makes it ideal for developers to build near-native web apps without learning low-level languages.

It is easy to get started with the Assembly script.

npm install --save-dev assemblyscript
Enter fullscreen mode Exit fullscreen mode

Once installed, the compiler provides a handy scaffolding utility to quickly set up a new project here in the current directory:

npx asinit .
Enter fullscreen mode Exit fullscreen mode

The asinit command automatically creates the recommended directory structure and configuration files:

The example in assembly/index.ts can now be compiled to WebAssembly by invoking the build command:

npm run asbuild
Enter fullscreen mode Exit fullscreen mode

Doing so will emit the compiled binaries, bindings and definition files to the build/ directory.

The generated test case in tests/index.js can be executed with:

npm test
Enter fullscreen mode Exit fullscreen mode

Once built, the directory contains all the bits to use the module like any other modern Node.js ESM module:

import * as myModule from "myModule";
Enter fullscreen mode Exit fullscreen mode

The generated index.html shows how the module can be used on the Web. A web server serving the module directory, defaulting to display index.html, can be started with:

npm start
Enter fullscreen mode Exit fullscreen mode

For more information on AssemblyScript, refer to their repository.

Assemblyscript GIF

Star the AssemblyScript repository ⭐


4. Godot: Multi-platform 2D and 3D game engine

Gaming is an industry worth hundreds of billions of dollars and is only expected to grow. Multiple surveys show that the gaming time of young individuals has grown drastically in the last ten years.
Godot can be a great start if you want to develop games. It is written in C, and not only games. Using Godot, you can even build Animation, AR/VR, and simulation software.

Games built with Godot can easily be exported to the Web, MacOS, Linux, Windows, Android, IOS, and consoles. With game engines, you can also build compute-intensive apps like photo editors, animation, etc.

For more, refer to their official documentation.

Godot GIF

Star the Godot repository ⭐


5. Gitpod - On-demand cloud development platform

If you were looking for a cloud-based development environment for your team, your search ends here. Gitpod is an open-source development environment that automates the setup of coding environments.

Gitpod provides automated and standardized development environments that run self-hosted in your cloud or local machine.

For more information on Gitpod, refer to their official documentation.

Gitpod GIF

Star the Gitpod repository ⭐


6. Turborepo - Optimized mono repo management system for JS/TS

Building mono repo software can be challenging as the software grows. If not managed properly, it can become a nightmare.

Turborepo solves your mono repo's scaling problem. It is a high-performance build tool designed for JS/TS apps to speed up workflows in single-package workspaces.

Key features

  • Incremental Builds: Only rebuilds changed parts of the codebase to save time.
  • Monorepo Management: Optimized for managing multiple projects within a single repository.
  • Caching: Leverages local and remote caching to avoid redundant builds.
  • Parallel Execution: Runs tasks like tests and builds concurrently for faster results.

Get started quickly.

npx create-turbo@latest
Enter fullscreen mode Exit fullscreen mode

The starter repository will have the following:

  • Two deployable applications
  • Three shared libraries for use in the rest of the monorepo
npm install turbo --global
Enter fullscreen mode Exit fullscreen mode

Once installed globally, you can run your scripts through turbo from your terminal,

For more, refer to the documentation page.

Turborepo GIF

Star the Turborepo repository ⭐


7. Tauri - Build blazingly fast apps for desktops

Tauri is a lightweight, fast, and secure framework for building cross-platform applications using web technologies like HTML, CSS, and JavaScript. The application's backend is a rust-sourced binary with an API that the front end can interact with.

Key features

  • Build apps for multiple platforms: Windows, MacOS, and Linux.
  • It uses the system's WebView, avoiding bundling a browser.
  • The core is built with Rust for privacy and speed.
  • Supports JS/TS frameworks like Svelte, react, Vue, etc.

Check out the documentation for more on Tauri.

Tauri GIF

Explore the Tauri repository ⭐


8. gRPC - An RPC library and framework

REST API is not enough for building fast, distributed, low-latency microservices. You will need something speedy and robust, and gRPC is perfect.

It is an open-source tool from Google built for efficient communication between services across different platforms and languages. It uses HTTP/2 and Protocol Buffers (protobufs) for serialization.

Key features

  • gRPC uses HTTP/2, which allows multiplexing multiple requests over a single connection, reducing latency and improving performance.
  • gRPC supports various programming languages.
  • gRPC supports streaming in both directions, enabling real-time data exchange between client and server.

Check out the documentation for more.

Grpc GIF

Explore the gRPC repository ⭐


9. Mem0: Memory layer for AI apps

A significant challenge in building AI apps is handling memory. This involves efficient storage and intelligent retrieval of past interactions, which can significantly enhance user experience.

Mem0 makes it easier for developers to add a memory layer to AI apps. It remembers user preferences, adapts to individual needs, and continuously improves, making it ideal for customer support chatbots, AI assistants, and autonomous systems.

Start using Mem0 by installing via pip.

pip install mem0ai
Enter fullscreen mode Exit fullscreen mode

Initialize Mem0

from mem0 import Memory
m = Memory()
Enter fullscreen mode Exit fullscreen mode

Memory operations.

# 1. Add: Store a memory from any unstructured text
result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="alice", metadata={"category": "hobbies"})

# Created memory --> 'Improving her tennis skills.' and 'Looking for online suggestions.'

# 2. Update: update the memory
result = m.update(memory_id=<memory_id_1>, data="Likes to play tennis on weekends")

# Updated memory --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'

# 3. Search: search related memories
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")

# Retrieved memory --> 'Likes to play tennis on weekends'

# 4. Get all memories
all_memories = m.get_all()
memory_id = all_memories["memories"][0] ["id"] # get a memory_id

# All memory items --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'

# 5. Get memory history for a particular memory_id
history = m.history(memory_id=<memory_id_1>)

# Logs corresponding to memory_id_1 --> {'prev_value': 'Working on improving tennis skills and interested in online courses for tennis.', 'new_value': 'Likes to play tennis on weekends' }
Enter fullscreen mode Exit fullscreen mode

For more information on Mem0 functionalities, refer to their official documentation.

Refer to the official documentation for more.

Mem0

Explore the Mem0 repository ⭐


Thank you for reading.

Top comments (4)

Collapse
 
time121212 profile image
tim brandom

Thanks for the list. I will add Kafka as well.

Collapse
 
sunilkumrdash profile image
Sunil Kumar Dash

Yeah, Kafka for event streaming is great.

Collapse
 
joeroot21 profile image
joeroot21

Thanks for the list. Will try Composio for sure.

Collapse
 
sunilkumrdash profile image
Sunil Kumar Dash

Glad you liked.