Code name: Free. v8.0.0

"Free" represents the new era of open source development empowered by AI. Both freedom and free — the AI agent is not just free labor, it is like a copy of myself, or even tens of copies, all deeply understanding this project, how to deliver high-quality code, and how to serve the community. AI handles all the dirty work — the boring tasks, the documentation, the coding — and often does it better than I could, with ten times the power. We built an AI robot for the community to answer questions and help users learn this project, and we used AI to almost entirely rewrite the SRS Proxy server — its structure, its workflow — so that AI agents can comprehensively manage and maintain it. With AI I have power, and I have choice: no longer waiting for other developers to contribute, I am free to manage this project, freed from the labor of maintaining it alone. This is a fantastic, amazing new era for building and sustaining open source projects and communities.
This commit is contained in:
winlin 2026-05-17 12:31:12 -04:00
parent 6ee6f1ca5f
commit 57d1062e91
9 changed files with 37 additions and 11 deletions

View File

@ -10,7 +10,7 @@
[![](https://img.shields.io/docker/pulls/ossrs/srs)](https://hub.docker.com/r/ossrs/srs/tags)
[![](https://codecov.io/gh/ossrs/srs/graph/badge.svg?token=Zx2LhdtA39)](https://codecov.io/gh/ossrs/srs)
SRS/7.0 ([Kai](https://ossrs.io/lts/en-us/product#release-70)) is a simple, high-efficiency, and real-time video server,
SRS/8.0 ([Free](https://ossrs.io/lts/en-us/product#release-80)) is a simple, high-efficiency, and real-time video server,
supporting RTMP/WebRTC/HLS/HTTP-FLV/SRT/MPEG-DASH/GB28181, Linux/macOS, X86_64/ARMv7/AARCH64/M1/RISCV/LOONGARCH/MIPS,
with codec support for H.264, H.265, AV1, VP9, AAC, Opus, and G.711,
and essential [features](trunk/doc/Features.md#features).

View File

@ -6,7 +6,7 @@ package version
import "fmt"
func VersionMajor() int {
return 7
return 8
}
// VersionMinor specifies the typical version of SRS we adapt to.
@ -15,7 +15,7 @@ func VersionMinor() int {
}
func VersionRevision() int {
return 148
return 0
}
func Version() string {

View File

@ -9,14 +9,14 @@ import (
)
func TestVersionComponents(t *testing.T) {
if got := VersionMajor(); got != 7 {
t.Fatalf("VersionMajor = %d, want 7", got)
if got := VersionMajor(); got != 8 {
t.Fatalf("VersionMajor = %d, want 8", got)
}
if got := VersionMinor(); got != 0 {
t.Fatalf("VersionMinor = %d, want 0", got)
}
if got := VersionRevision(); got <= 0 {
t.Fatalf("VersionRevision = %d, want > 0", got)
if got := VersionRevision(); got < 0 {
t.Fatalf("VersionRevision = %d, want >= 0", got)
}
}

View File

@ -17,7 +17,7 @@ The C++ media server (`trunk/src/`) serves as both origin server and edge server
`core/` — Foundational definitions:
- `core` — Core includes, macros, config generated by configure
- `core_version` through `core_version7` — Version definitions per major release
- `core_version` through `core_version8` — Version definitions per major release
- `core_autofree` — SrsUniquePtr smart pointer (RAII)
- `core_deprecated` — Deprecated SrsAutoFree, kept for compat
- `core_performance` — Performance tuning constants (merge-read, etc.)
@ -227,7 +227,7 @@ The next-generation server (`cmd/` + `internal/`) is written in Go and maintaine
`internal/env` — Environment-based configuration. All settings via env vars (or `.env` file parsed by an in-tree custom parser — no third-party dep; supports comments, `export` prefix, quoted values, escape sequences, and inline comments). Exposes a `ProxyEnvironment` interface (with a counterfeiter-generated fake in `envfakes/` for downstream tests) with methods for each config value. Default ports: RTMP=11935, HTTP API=11985, HTTP Stream=18080, WebRTC=18000, SRT=20080, System API=12025. Timeouts: grace=20s, force=30s. Supports Redis config and default backend config for debugging.
`internal/version` — Version constants. Signature `SRSX`, version tracks the SRS project version (currently 7.0.x). Used in HTTP API responses and startup logging.
`internal/version` — Version constants. Signature `SRSX`, version tracks the SRS project version (currently 8.0.x). Used in HTTP API responses and startup logging.
`internal/errors` — Error handling with stack traces, thin wrapper over stdlib `errors`. Provides `New`, `Errorf`, `Wrap`, `Wrapf`, `WithMessage`, `WithStack`, `Cause`, and re-exports `Is`/`As`/`Unwrap`/`Join`. Every error captures a stack trace at creation; `%+v` prints the full trace. `Cause()` walks the error chain to find the root error.

2
trunk/configure vendored
View File

@ -237,7 +237,7 @@ fi
MODULE_ID="CORE"
MODULE_DEPENDS=()
ModuleLibIncs=(${SRS_OBJS})
MODULE_FILES=("srs_core" "srs_core_version" "srs_core_version7" "srs_core_autofree"
MODULE_FILES=("srs_core" "srs_core_version" "srs_core_version8" "srs_core_autofree"
"srs_core_time" "srs_core_platform" "srs_core_deprecated" "srs_core_performance")
CORE_INCS="src/core"; MODULE_DIR=${CORE_INCS} . $SRS_WORKDIR/auto/modules.sh
CORE_OBJS="${MODULE_OBJS[@]}"

View File

@ -4,6 +4,11 @@
The changelog for SRS.
<a name="v8-changes"></a>
## SRS 8.0 Changelog
* v8.0, 2026-05-17, Init SRS 8.0, code Free. v8.0.0
<a name="v7-changes"></a>
## SRS 7.0 Changelog

View File

@ -7,6 +7,6 @@
#ifndef SRS_CORE_VERSION_HPP
#define SRS_CORE_VERSION_HPP
#include <srs_core_version7.hpp>
#include <srs_core_version8.hpp>
#endif

View File

@ -0,0 +1,7 @@
//
// Copyright (c) 2013-2026 The SRS Authors
//
// SPDX-License-Identifier: MIT
//
#include <srs_core_version8.hpp>

View File

@ -0,0 +1,14 @@
//
// Copyright (c) 2013-2026 The SRS Authors
//
// SPDX-License-Identifier: MIT
//
#ifndef SRS_CORE_VERSION8_HPP
#define SRS_CORE_VERSION8_HPP
#define VERSION_MAJOR 8
#define VERSION_MINOR 0
#define VERSION_REVISION 0
#endif