
Security News
npm Tooling Bug Incorrectly Marks One-Character Packages as Security Holders
npm confirmed a tooling bug incorrectly marked several one-character packages as security holders and said it was working on a rollback.
kusionstack.io/kclvm-artifact-go
Advanced tools
This repo mainly includes the binding of the low-level API and spec of the KCL language core, and the SDKs of various languages are based on this to encapsulate higher-level APIs.
cargo add --git https://github.com/kcl-lang/lib
Write the Code
use kcl_lang::*;
use anyhow::Result;
fn main() -> Result<()> {
let api = API::default();
let args = &ExecProgramArgs {
k_filename_list: vec!["main.k".to_string()],
k_code_list: vec!["a = 1".to_string()],
..Default::default()
};
let exec_result = api.exec_program(args)?;
println!("{}", exec_result.yaml_result);
Ok(())
}
More Rust APIs can be found here. If you want to use the sub crate of KCL Rust core, you can run the following command.
# Take the kcl-runtime as an example.
cargo add --git https://github.com/kcl-lang/kcl kcl-runtime
go get kcl-lang.io/lib
Write the Code
package main
import (
"fmt"
"kcl-lang.io/lib/go/api"
"kcl-lang.io/lib/go/native"
)
func main() {
client := native.NewNativeServiceClient()
result, err := client.ExecProgram(&api.ExecProgramArgs{
KFilenameList: []string{"main.k"},
KCodeList: []string{"a = 1"},
})
if err != nil {
t.Fatal(err)
}
fmt.Println(result.YamlResult)
}
Full Go SDK can be found here, which depends on the kcl-lang/lib Go bindings.
Refer to this to configure your Maven; set up your GitHub account and Token in the settings.xml.
In your project's pom.xml, configure our repository as follows:
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/kcl-lang/*</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
This way you'll be able to import the above dependency to use the SDK.
<dependency>
<groupId>com.kcl</groupId>
<artifactId>kcl-lib</artifactId>
<version>0.12.3</version>
</dependency>
Write the code
import com.kcl.api.API;
import com.kcl.api.Spec.ExecProgramArgs;
import com.kcl.api.Spec.ExecProgramResult;
public class ExecProgramTest {
public static void main(String[] args) throws Exception {
API api = new API();
ExecProgramResult result = api
.execProgram(ExecProgramArgs.newBuilder().addKFilenameList("path/to/kcl.k").build());
System.out.println(result.getYamlResult());
}
}
dotnet add package KclLib
Write the code
using KclLib.API;
var api = new API();
var execArgs = new ExecProgramArgs();
var path = Path.Combine("test_data", "schema.k");
execArgs.KFilenameList.Add(path);
var result = api.ExecProgram(execArgs);
Console.WriteLine(result.YamlResult);
python3 -m pip install kcl-lib
Write the code
import kcl_lib.api as api
args = api.ExecProgramArgs(k_filename_list=["./tests/test_data/schema.k"])
api = api.API()
result = api.exec_program(args)
print(result.yaml_result)
npm install kcl-lib
Write the code
import { execProgram, ExecProgramArgs } from 'kcl-lib'
function main() {
const result = execProgram(new ExecProgramArgs(['__test__/test_data/schema.k']))
console.log(result.yamlResult)
}
main();
Refer to this to configure your Maven; set up your GitHub account and Token in the settings.xml.
In your project's pom.xml, configure our repository as follows:
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/kcl-lang/*</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
This way you'll be able to import the above dependency to use the SDK.
<dependency>
<groupId>com.kcl</groupId>
<artifactId>kcl-lib</artifactId>
<version>0.12.3</version>
</dependency>
Write the code
import com.kcl.api.API
import com.kcl.api.execProgramArgs
val args = execProgramArgs { kFilenameList += "schema.k" }
val api = API()
val result = api.execProgram(args)
import KclLib
let api = API()
var execArgs = ExecProgramArgs()
execArgs.kFilenameList.append("schema.k")
let result = try api.execProgram(execArgs)
For CMake, you can use FetchContent to add KCL C++ Lib to your project.
FetchContent_Declare(
kcl-lib
GIT_REPOSITORY https://github.com/kcl-lang/lib.git
GIT_TAG v0.12.3
SOURCE_SUBDIR cpp
)
FetchContent_MakeAvailable(kcl-lib)
Or you can download the source code and add it to your project.
mkdir third_party
cd third_party
git clone https://github.com/kcl-lang/lib.git
add_subdirectory(third_party/lib/cpp)
target_link_libraries(your_target kcl-lib-cpp)
Write the code
#include "kcl_lib.hpp"
#include <iostream>
int main()
{
auto args = kcl_lib::ExecProgramArgs {
.k_filename_list = { "../test_data/schema.k" },
};
auto result = kcl_lib::exec_program(args);
std::cout << result.yaml_result.c_str() << std::endl;
return 0;
}
See here
See here
See here
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
npm confirmed a tooling bug incorrectly marked several one-character packages as security holders and said it was working on a rollback.

Research
/Security News
Newer packages in this compromise use native extensions and .pth loaders to execute JavaScript stealers in developer environments.

Research
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.